Fixed default canvas colour; clear all works (but you cannot undo it)
Only record an action if it hasn't been done before.

i.e. if I paint a 1x1 blue square at 0,0 and then paint that
same square blue that action doesn't get recorded and hence hitting
'undo' at this point will remove the blue square.
Fix screen clear and improve undo / redo ordering.

When clearing screen a proper drawAction is recorded to allow for
sane undo / redo. Undo / redo changed to handle more sane undo / redo
ordering. For instance if you do actions:
draw a, draw b, draw c, draw d, undo d, draw e

Previously if you hit "redo" at this point the draw action from undo d
would be applied. This doesn't make sense. This change updates the
behaviour so that "redo" will not do anything at this point.
Map cmd-z cmd-shift-z to undo / redo.