Initial snapshot code

First try. Will work some more on it
I am putting the file in it's correct location
Extracted the UIJob into it's own class
Fiddled with the restrictions
Added a new method to "know" a workspace

I know a workspace if it has an ID. If it doesn't I create one.

I use this to determine if I need to get a snapshot or not. If I don't know the workspace, I create the snapshot and give it an ID so I can reference it later.
Removed a forgotten print
Formatting
Removed redundant semi-colon
Merge pull request #12 from caiusb/initial-state

Added a snapshot for the initial state