Semi-Final arrangement of some core structural classes for the project.

Let me know what you think. Mike and I worked out this as a good core structure.
I feel like it should be a separate class, since it's not just any old string, there's going to be a shared method for generating UniqueIds. Also, as long as it has toString on it then serialization shouldn't be a problem.