Implement drawing save/load

I implemented saving and loading for the drawing canvas. When you click "SAVE",
a dialog box appears prompting you to copy the data to the clipboard. This data
is a list containing alternating x-values and y-values, stringified using
JSON.stringify. To load previously saved data, you click "LOAD" and paste it.
(If it is invalid, another dialog box will tell you so.) This data is parsed
back into the original points array form (objects with x and y fields), and then
the points array is replaced with it AS AN ACTION. This means loading is
undoable! The action item contains an entire array, but their is nothing wrong
with that. So far there are no performance concerns with regard to the actions
whatsoever, even though it is very inefficient.

It is possible to enter your own values in the load dialog box and make dots
that are outside the canvas. I don't think we need to bother preventing this,
especially since it's already position to position a dot at -1 or -2 with the
mouse (thought I'm not sure why).