Command implementations

#19 
command implementations with load implemented
* cannot undo a load (part of program, not a bug)
* test by making several shapes (different ones), saving, loading, undoing, redoing, in random orders to try and break it
* changed the shapes classes to implement serializable so that it could be outputted into file and read easily
* will start working on something else