Continuous ground checking

Gravity will properly affect entities walking off ledges
Skid mechanics, tweaking acceleration variables
Better key events

`keydown` no longer relies on the browser's built-in key events, instead using a custom in-engine trigger clock to better control the timing of non-unique `keydown` events.
More movement tweaking.
Continuous collision detection

Fixed the bullet through paper issue (#1) by performing specular contacts sweeping collision detection when a time gap of five or more frames occurs between loop iterations.
Continuous collision detection

Fixed the bullet through paper issue (#1) by performing speculative contacts sweeping collision detection when a time gap of five or more frames occurs between loop iterations.
Merge remote-tracking branch 'origin/develop' into develop

Conflicts:
	js/alien/game.js
	js/alien/systems/collision.js
Support for key sequences - see #2
Support for key combinations - see #2
Autopause on window blur
Support for modifier keys (#2)

Also added IDs for game systems to be compatible with the event manager
Fixed an issue where one-time key events would not properly trigger
Collision resolution tweak

Resolution of a collision will only change the entity's velocity vector if the dot product of the velocity with the collision manifold is a negative value (that is, the angle between vectors is greater than 90 degrees).

This fixed an issue where ascending up the side of a tile would cause entities to "suck" onto the top of the tile when reached.  Entities will now follow the correct trajectory up the side of a tile.
Animations immediately begin playing when activated instead of waiting for the frame from the previous animation to update.
Reverse all comparison expressions to put the constant on the left (avoids unintentional assignment bugs)
Camera interpolation (#6)
Map can dictate player spawn (#8)
Support for slopes on maps
Entities are considered grounded while resting on shallow slopes.

Player can now jump twice before landing (instead of unlimited number of times)
Slopes are generated as single tiles.

Inner face pass added to map geometry generation to determine faces which should not be collided with.  (Collision implementation to come)