Add support for prioritized loading of bundles

An application may now put "bundle" and "shard" properties in its
"package.json" to designate priority order for a sequence of bundles to
preload and the number of parallel connections to harness.  The "bundle"
property must be an array, where each element corresponds to a step in the
loading process.  Each element may be a string or array of strings, and each
string must be a module identifier.  Each step of the preloading phase will
contain these modules and their transitive dependencies, excluding any modules
that were loaded in a previous phase.  The "shard" count is the number of
parallel requests to use within each phase.  The bundle for each phase will be
divided into up to as many shards to load in parallel.

Added a warning not to use the "root" property of a template module’s exports,
favoring instead the "directory" property.  The "root" property accidentally
exposed a regular expression match object instead of a string.  "directory"
matches the terminology used by the "module" object provided by "require".

Promise: add support for .end(callback, errback) for transitioning out of
promise-passing-style to continuation-passing-style.

Revised the bootstrapping code in "montage.js" so that it guarantees that
bindings support has been set up before the application initializes.

Renamed "require.getModule" to "require.getModuleDescriptor".
"require.getModule" exists but is deprecated.
Fix non-bundled optimized applications

They were previously not loading from script-injection as they were
supposed to.
Merge master into bundle2
Merge pull-request gh-814 from 'kriskowal/bundle2'

Conflicts:
	package.json
New Mfiddle

- The main premise is building a component instead of a template (it still works as the previous one if there's no owner in the serialization)
- Faster running the code because the iframe is initialized only once, consequent loads are injected.
- Has a logger that shows console.logs from the running code.
Add better support for adding components in mfiddle

Handle owner element and erroneous serialization and html when adding a component through the "add component" buttons.
Add indent size to code-mirror component

Also, change tabSize default to 4 (same as CodeMirror)
Format serialization with 4 space indent
Add save and new buttons to mfiddle UI
Remove old serializations from montage-frame

Sometimes the serialization script tag is not removed by the Template, for instance, when its contents are empty.
Add new and save/load gist functionality to middle

Fiddles are saved into an anonymous gist in three files:
- component.css
- component.html
- component.js

There's also a settings file to be used when we have splitter panes
- settings.json

gist.js was coded by Lea Verou for dabblet and is used with her permission. (@aadsm)
Avoid rerun the fiddle after saving
Stop using bluemoon components on middle

We are now using the montage/ui/*.reel ones
Update content-view titles in mfiddle
Fix component buttons styles in mfiddle

The viewport size of the sprite is different per component, since we were using a one size fits all so some of them were wrongly displayed.
Add new sprite
Fixed component list style in mfiddle

It probably has more elements/css than needed but has the same UI as before.
Correct scroll{X,Y} if _maxTranslate{X,Y} change in scroller

Makes sure scrollX and scrollY do not exceed _maxTranslateX and
_maxTranslateY
Add JSDoc to the scroller
Make console look good in MFiddle