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.
A single, generic wrapper can be used for them all. Then we just need to store the data as to which file includes what. It could be JSON, YAML...

Then another build step would turn those into wrapper files, and we would go from there.