Environments

This PR will implement environments in roots v3. Environments in roots are a pretty simple concept, each environment gets a different app.coffee file, namespaced to the environment name, for example `app.production.coffee`. The default `app.coffee` is for the `development` environment. Since any sort of compression/minification happens through extensions, you can just configure extensions to optimize in the ways you need in `app.production.coffee` and not worry about these configs in the default `app.coffee`.

The first commit contains the basic implementation, which I manually tested and is working. Still to go:

- [x] Tests
- [x] Documentation
- [x] Code review