GenLocDrawing monad

GenLocDrawing is a reader-writer-state monad, unlike
GenLocTrace there is no updateable current point, instead
the start point is supplied when the drawing is run and it
is translated by the components of the start point.