Added communities.

This is still in alpha. This should have access for users to create, read, updated, and delete communities. User accounts should now have specific ways to remember and forget streams and surveys. When a user joins a community, either through creation or joining, they should also have a reference in their profile to that community. The one thing that is still missing is the ability to hide streams and surveys within a community. The placeholders are there, but the actual code is not.

References #632