Canvas Image Editing

Added canvas image editing. The image edits are done client-side via
the HTML5 canvas, base64 encoded, and sent to the server.