Adds libs for full screen API and mobile detection.
Adds SCREEN.measure_text().

SCREEN.measure_text() backs to the canvas API's measureText()
method. It returns the width in pixels of text in a given font.
Changes loading scene to prompt to start.

Upon loading completion, the loading text changes to a clickable
"Would you like to play a game?" message. This is a good place to
execute actions that must be triggered by user input on mobile
platforms, like starting sound output or going full screen.
Moves things a smidge on SVG sprite sheet.
Adds Crafty.viewport.absoluteScale().

Adds a viewport method to set the scale absolutely, since
viewport.scale() applies a factor against the current scale. This
is useful for full-canvas scaling in response to browser window resize
events.
Cuts some cruft from index.html.

- Fixes Crafty text entity valign by setting CSS line-height to 1em.
- Removes useless viewporter.js.
- Adds BigScreen.js.
- Adds some CSS rules to govern canvas scaling.
- Moves CraftyJS hacks to a separate file instead of modifying the lib.
- Adds AddressBarUtil for going fullscreen on mobile.
- Adds BigScreen for going fullscreen on mobile.
- Adds a line to use an old version of jQuery for crafty-debug.
- Adds isMobile to detect mobile platforms.
Enhances DotMatrix component.

- Makes entity width a multiple of character width.
- Increases border from 1px to 3px.
- Stops using SCREEN.css_width since entity width is more accurate.
Adjusts PushButton component for smaller sprite.
Fixes ToggleSwitch for scaling.

Mouse event `realX` and `realY` are the Crafty-computed mouse
coordinates that take scaling into account. `clientX` and `clientY`
are native screen coordinates that break when scaling is in effect.
Resizes sprites, rearranges levels to fit.
Updates game to 533x320 with upscale.

SCREEN.WIDTH and SCREEN.HEIGHT are now fixed values (533x320, my
smartphone's DIP resolution). SCREEN now has scaleWidth and scaleHeight
which represent the conversion of that fixed height and width to screen
pixels. SCREEN also has realWidth and realHeight, which are aliases
for window.innerWidth and window.innerHeight, the browser window's
current dimensions.

The initializer now binds rescaling to window resize events and Crafty
SceneChange events (because Crafty resets the viewport on scene
changes). Rescaling makes use of `Crafty.viewport.absoluteScale`, a
method I added in the `crafty_hacks.js` file. `absoluteScale()` sets
the stage scale relative to 1.0. Other Crafty viewport zoom/scale
methods set the scale cumulatively, relative to the current scale.

The rescaling callback also calls `Crafty.viewport.reload` manually
rather than letting Crafty bind it to window resize events. This is
because the rescaler is throttled to run at most every 500ms, and
`Crafty.viewport.reload` was triggering a viewport reset and redraw
before the scaler had a chance to act, causing a flash of unscaled
content.
Fixes long-standing Scene destructor bug.
Revert "Adds Crafty.viewport.absoluteScale()."

This reverts commit a4ce8a75134d5083ff7517c4d4f9bbf20cc46c28.
wip
Adds `SCREEN.cutToBlack`, fixes alpha bug.

`SCREEN._doFadeBlack` wasn't correctly setting starting alpha for
fades to black. Added a jQuery CSS workaround, but will need to
track the bug down in Crafty.

Adds `cutToBlack` which immediately goes to black.
Adds mobile fullscreen API support.

Adds support for fullscreen API on mobile devices. Some mobile
browsers (Firefox, Chrome) no longer respect `scrollTo(0,1)` to
hide the address bar, requiring web apps to use the fullscreen API
instead.

In addition, the fullscreen API must be called from a click or key
handler, not a touch event or an indirect code-generated event, or
the browser will refuse the request for security reasons. This
commit disables Crafty's touch events temporarily so that they get
promoted to mouse clicks by the browser, permitting the click handler
to engage fullscreen mode.
Updates level cross-loading animations.

Levels now fade over a second, wait in black for half a second,
render their UI, then fade up over half a second. Looks nicer
than fading out, then in, then rendering.
Adds a javascript state machine library.
Loads Stately earlier due to RequireJS conflict.

Stately can load itself several ways, including using AMD as provided
by RequireJS. But that fails. So let's load it earlier.
Adds a new shorter pushbutton sprite.