ref: 5ea155bcf5f48d777fb2e6b6d66d34e60119d24e cms/internal/v d---------
Feat(dynamic): Dynamic content pages have been added (rather than
hardcoded HTML. This is Skipper dog fooding itself (I.E. Skipper
now makes requests to itself to pull content for these dynamic pages).
This commit also adds initial support for an "official" Skipper Go API.
This is nice as the API satisfies interfaces Skipper itself uses
internally (E.G. m/content, m/value).
Fix(ReferenceList): Don't blow away ref list inputs on update. Also, can
now update ref list to have a length of zero values.
Fix(hook service): Hook service was broke for list of hooks. Encapsulate
in anonymous func to fix.
Feat(invites and roles): Users can now set roles while inviting others.
WIP(rbac): Decorator object complete. TODO: Specify role in invite.
Allow admin to change other user's roles.
Feat(invite): Adding invite feature.
Merge branch 'tmp'
Fix(index.html): Screen readers bad label fix.
Feat(password): Password update on billing page.
WIP(Stripe downgrade): Work in progress commit. See TODO file. Need to
warn user on dangerous actions such as downgrade.
Feat(email+upgrade): MVP support for user emails (after signup) and
upgrading subscription.
Feat(build version): Put build version into footer.
WIP(rate limiting): Initial support for rate limiting. TODO: rate limit
for user to org.
Feat(<title>): Update title per updated name.
Feat(stripe/billing): cms_billing table complete. NEXT: Allow users to
adjust billing/cancel.
Fix(save btn+stripe): Minor tweaks.
Fix(HEAD~1): Minor bug fixes to previous commit.
Feat(Big): Added a few things here...

* MVP stripe integration (new controller/server).
* Moved tmpl to views (package v).
* Added ability to create migrations.
* Added first migration. Remove user_to_space in favor of org table.
Feat(*): Project init.