Provide Marionette objects as individual UMD modules

#### [Play with it here](https://github.com/jmeas-test/test-umd-modules)

Resolves #1332 

This allows for users to pick and choose the Marionette classes they want to use. This updates our build system to transparently bundle each class as a UMD module.

```sh
# build everything, including the components
grunt build
```

Usage:

```js
// Pull in just what you want to use
var ItemView = require('marionette/lib/item-view');
var Region = require('region');

// And if you're a power user who wants to access Marionette
// directly, for, say, `triggerMethodOn`
var Mn = require('marionette/lib/core');
```

:tada:

=====

Caveats of the playground repo above:

– I don't test Behavior/Behaviors classes
– I *only* test initialization. So if a dependency is used in a particular function, that error won't be caught

Please take a look through all of the source files to see if I missed any dependencies. Do remember that the helper methods like TriggerMethod, and the Error class, are all loaded when you load in the core.
Abstract it how?