Switch primitive types to be singletons

Ensure that exactly one of each primitive type can exist.

For #82
Merge pull request #85 from TysonAndre/primitive_singletons

Switch primitive types to be singletons