Feature WIP: Add Groups Functionality

This is a quick-n-dirty port of the group functionality from Diaspora-Pistos to Diaspora upstream. This pull request merely exists for other D* community devs to take a look at, make suggestions, etc. As it stands, I don't think this will work out-of-the-box, but I figured it wouldn't hurt to get some input. Not intended for merging yet.

Things to think about:

* Is this a feature we want in our code?
* Does anything need to be updated for Backbone.js?
* Pistos code originally didn't have tests for groups. Naturally, it shouldn't be all that hard to write some, however I myself am a bit shaky in this area still.
* How does Pistos' code stack up, and how can we improve it?
* I seem to remember that Pistos' groups could federate. Hypothetically, what do we need to do to ensure that groups are federated?
* Do we need to add a "group" type to our federation spec?

Also, feel free to check the [Loom.io](http://loom.io/discussions/1188) discussion on this.