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
[gh-945] Make input-range more usabe on mobile

- [gh-944] Remove console log from input-range
- Enhance speed of Kitchen Sinks' color-range chip on chrome mobile
- Add a bigger slider handler to ease drag and drop on mobile
- Avoid changing slider values while dragging outside bar boundaries
Related to gh-945. Performance improvements to InputRange on Mobile iOS/Android Chrome.
Improvement to fix for gh-945. 

- On touch devices, handle translate only if touch is on the knob.
Related to gh-945. Usability Improvements to InputRange

- Calculate knob size instead of using HANDLE_ADJUST
- Handle browser resize issue. 
- Removed use of _sliderLeft
- Increase knob size
- Remove _getElementPosition. Not used anymore.
Related to gh-945. Removed DOM manipulation outside the draw loop.

- Also fixed the test spec to test after a draw cycle.
Fix for gh-970 related to InputText + the test case.
Related to gh-970 - added another test case.
Merge pull request gh-948 from 'kishores/gh-945-input-range'
Merge pull-request gh-971 from branch 'kishores/gh-970-input-text'
Merge pull request gh-959 from 'stuk/mint-tabs'
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.