Reformatted drawing and caching methods for easier user-end draw method definitions; 'draw' methods on DisplayEntities are now wrapped at runtime by 'draw__optimized' methods that take caching and snapping into account