Improved /DrawImage implementation

Replaces current /DrawImage with a better implementation. Notable improvements:
1) Able to draw in any direction/orientation from the origin block
2) Choose from 7 block palettes (Light, Dark, Layered, Gray, DarkGray, LayeredGray, BW), with possibility of expansion
3) Able to undo/redo in-progress commands
4) Improved color accuracy (using CIE76 deltaE color-matching algorithm)

Base command syntax remains the same, although a second optional parameter has been introduced. Marking semantics have also been slightly changed (arguably improved) for more flexibility. It now behaves somewhat similarly to /PasteX.

Opportunities for future improvement:
1) Introduce a filesize limit for images, to avoid potential DoS attacks
2) Add image dithering
3) Avoid using water block in palettes if player lacks PlaceWater permission, or create separate water-less palettes.
4) Add CPE palettes (when the rest of 800craft gets support).