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
Change missing module/name to prototype
Beautify references to elements and bindings in serialization
Fixes the BlueMoon slider dot

being not centered
Merge pull-request gh-950 'simurai/bluemoon-slider'
Move invert-converter from Sink to Montage core

gh-949
Update copyright notice in LICENSE.md
Merge pull request gh-951 from 'stuk/move-invert-converter'
Merge pull request gh-952 from 'stuk/update-copyright'
Remove unneeded properties from invert-converter
minit: make component template more generic

Allows the user to specify the JSDoc module for file and the
copyright statement to be prepended to all files.

The Montage license has been added in tools/minit/montage-license.txt
and a Montage component can be created using:

./tools/minit/minit component <name> montage tools/minit/montage-license.txt
minit: make app template more generic

Allow the user to specify the copyright statement to be prepended
to all files
Merge pull request #924 from aadsm/mfiddle
Component always create templateObjects

A component should always have a templateObjects property after loading its template.
Preserve component placeholder data-montage-id and id attributes

Previously the ones from the template were overriding the placeholder when present.
Fixes a bug with COMMANDS. `command.method` was always null because this._methodName was not defined yet.
Fixes a typo in the listStyle getter.
Merge pull request #956 from aadsm/bug-fixes

Bug fixes
Add multi-window application support

Add notion of a Montage Window object to represent the window,
moved most of the multiple-window logics from the Application
into the Window Object.

Also create multi-window sample app in lab

This includes the changes from the pull request gh-935,
implementing features from gh-314.