Implemented new NinjaTurtle split responsibilities

NinjaTurtle is now responsible for movement methods (e.g
forward/left/goto). A renderer is now responsible for providing
a backend turtle api for render specific methods (e.g. color, shape)

For the built in Tk renderer, this backend is simply the RawTurtle class
from the stdlib, for now.
Cleaner implementation and usage of TurtleModel

Turtlemodel now acts as bridge between "frontend" NinjaTurtle and
"backend" render turtle, much cleaner. TurtleModel is now the key object
in the NinjaTurtle engine.
Merge resolved conflicting merge.
NinjaTurtle engine handles callacks into Turtle code
Merge branch 'master' into rlw