Extract shared core functionality to a new module

One main goal of our stack is to be able to reuse core components without having to rewrite or copy and paste code. In this branch we're starting to extract a new module called **trabian-webapp-core** (I'm open for naming suggestions!). So far we've moved `app/views/base` to `core/views/base` and `app/views/base/collection` to `core/views/base/collection` along with the associated tests.

Thanks to browserify, all we have to do to make these base views available to our app is add a new aliasMapping to our Gruntfile.

There are a few more things I'd like to investigate in this pull request:

- [ ] Move most npm dependencies from main package.json to trabian-webapp-core/package.json
- [ ] Move most bower dependencies from main bower.json to trabian-webapp-core/bower.json
- [ ] Create a custom grunt task that encapsulates our usual config (maybe -- not sure if this level of abstraction will limit our flexibility).