Refactor to allow BLC to run without the CMS module

# DO NOT MERGE YET

This pull request should be completely innocuous to users of Broadleaf 3.1.

A DemoSite based on 4df55ba3a9bb81e6a74a0ef097e5171456a2c545 will successfully run with this pull request.

With these changes, users will be able to not only exclude the CMS module entirely, but site no longer has a dependency on open-admin. These changes would be site level however -- this is just the framework support for those items.