Reorganize and add a number of useful gems

I added a few useful gems and swapped out a few where I thought better alternatives were available.

It is likely ambitious, but I've done what I can to support JRuby. If we can maintain JRuby compatibility, [ruboto](http://ruboto.org/) could really narrow the distance to a native(-ish) Android app.

A few notes:
* [active_model_serializers](https://github.com/rails-api/active_model_serializers) - A product of the [rails-api](https://github.com/rails-api/rails-api) team, makes serialization of AR models very easy and makes for a good separation of concerns. I thought about adding rails-api, but I think the server-side will still need it's full arsenal of tricks even though the app will be heavily client-side.
* [foreigner](https://github.com/matthuhiggins/foreigner) - Foreign key constraints for Rails. Pretty sure you're familiar with this one.
* [yard](http://yardoc.org/) - The best gem for documentation I've found. Allows for Github style markup
* [shoulda-context](https://github.com/thoughtbot/shoulda) - Allow for using rspec-like context and should blocks in tests. We can debate this if you disagree, but I think the context/should blocks allow for tests to be a spec of expected behavior. I updated one of the tests so you can see an example.

I think you should be familiar with or be able to figure out the rest, but let me know if you have any questions about any of those.