Added Shape interface.  Drawing now uses shapes and supports translations and rotations. Scaling still not supported - although scaling doesn't seem to work with ES1 either.