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.
Is this class necessary? The type is a string, and sometimes the object in question may want to have more control over the UniqueId. (ie, an upvote builds it's unique id from a number of things,including the user that posted it. It may want to only have a getter for unique id).

Also, I'm concerned that having this as a class may complicate serialization/deserialization.