- Level Editor (continued...)
    - made Scale text unselectable
- Level Editor (continued...)
    - can now switch to player position mode by hitting the 'Q' key
    - then, left mouse click will add an entity with 'PlayerMarker' component to the Objects layer
    - only one PlayerMarker can exist on the map, ie. each add will delete a previously existing PlayerMarker
    - now when game play starts the player position is initialized by asking the PlayerMarker for the player position
    - can now delete from the 'Objects' layer
    - the delete from layer precedence is now: Solid layer, then Objects layer, and finally the Ground layer
- Level Editor (continued...)
    - can now switch to waypoint mode by hitting the 'W' key
    - hit the 'W' key repeatedly to cycle through the different waypoints (1 - 10)
    - then, left mouse click will add an entity with 'WaypointMarker' component to the Objects layer
    - only one of each of the 10 tiles for WaypointMarkers can exist on the map, ie. Tile7 to Tile16
    - now when game play starts the current waypoint position is initialized by asking the current WaypointMarker for the waypoint position
- changed Crafty.audio.play() to remove 'ended' event handler when play has ended
- changed Crafty.audio.stop() to remove 'ended' event handler
- Level Editor (continued...)
    - reset zoom level to 1 before playing edited level
- car exhaust can now be toggled off/on using the 'X' key
- Performance optimizations
    - pre-calculating exhaust direction vectors
    - re-using exhaust position vector instead of allocating each time
- Performance optimizations
    - re-using car._updateMovement vectors instead of allocating each time (that's 3 less "new Crafty.math.Vector2D" each frame)
- Performance optimizations
    - re-using velocity vector when car is stopped instead of allocating each time
- Performance optimizations
    - re-using collision polygon when updating car's collision bounding box to avoid allocating memory
- Performance optimizations: TipText
    - no longer destroys itself, but instead just becomes invisible until next time show() is called
    - no longer creating an object on the fly just to set x and y during EnterFrame
    - places which use TipText now create it during initialization and keep a reference for later showing
- Performance optimizations: Waypoint
    - no longer creating a new object each time the position of the waypoint is set
- Performance optimizations: Minimap
    - no longer creating a new object each time the position of the mini map markers and viewport change
- Performance optimizations: Countdown
    - no longer creating a new object each time the position of the countdown is changed
- Performance optimizations: WaypointMarker
    - no longer creating a new object when getWaypointPosition() called
- Performance optimizations: Car
    - no longer creating a new object each time PlayerMoved is triggered
- Performance optimizations:
    - no longer creating a bunch of objects and vectors every frame when in Demo mode
- Performance optimizations:
    - added "exec:wtf_instrument" step to grunt task to generated a Web Tracing Framework (WTF) instrumented version of crafty js
    - added index-dev-instrumented.html to include the WFT instrumented crafty js
- Level Editor (continued...)
    - press 'E' to switch to Oil adding tool
    - press 'R' to switch to One-Way adding tool, press 'R' multiple times to toggle between different one-way directions (NE, SE, SW, NW)