Beginnings of turtle via suspensions

major remaining piece is updating package level methods that use the anonymous turtle
Updated anonymous turtle methods to use suspensions
Turtle rewrite

complete rewrite of the turtle module
Updated float/int cast methods
Adds an undo stack

Implementation of undo command (max 1000)
Must be enabled by setundobuffer(N) where 0 < n < 1000
Fixed getCoordinates for case when a vector is passed in
Cleans up/fixes heading calculations

better/simpler angle calculations
better $circle logic
fixes errors with setx, setx and write
Adds event handling capability to turtle

adds a MouseManager and EventManager class for tracking events
adds onclick onrelease and ondrag to turtle
adds onclick onscreenclick and ontimer to screen
update bgcolor to color the screen canvas and not the canvas container
Fixed home command to use properly scoped variable
Redo of render loop to respect tracer and delay properly

Updated to render all turtle sprites on the same layer for mucho better performance
Refactored render loop to actually use the tracer and delay settings properly
Cleaned up render state management
Updated color, size and shape changes to render if the turtle is shown

Updated bgcolor to render on a separate canvas
Updated FrameManager to flush if new buffer size is smaller than current buffer
Fixes to dot drawing as well as towards and distance calls

Updated dot drawing to scale size of dot to current coordinate system
Updated towards and distance to accept a turtle instance as an argument
fixed circle with speed 0 and updated display name logic

Updated circle to render after full circle is drawn when speed is 0
Updated displayName calculation to catch _$rw$ format
Merge branch 'turtledev' of github.com:skulpt/skulpt into turtledev

Conflicts:
	src/lib/turtle/__init__.js