Load project state

This covers:
* https://github.com/KSHSK/WAVED/issues/118 - Setting state on load.
* https://github.com/KSHSK/WAVED/issues/106 - Reading data file contents on load.
* https://github.com/KSHSK/WAVED/issues/95 - Deleting marked data on load.
* https://github.com/KSHSK/WAVED/issues/123 - Add validation to workspace properties
* https://github.com/KSHSK/WAVED/issues/80 - Update workspace when current project is changed

These changes are heavy in functionality and should be strongly tested before merging. Need to test:
* Workspace properties are loaded correctly.
* Button widget properties are loaded correctly.
* All Properties Panel validation still works for both a new project and loaded project.
* Dataset list is the same after load.
* Dataset file contents are read on load.
* Marked datasets are deleted on load.
* Anything else you guys can think of!