Initial cut. Prior to heavy refactoring.
Added serialization tests, bug fixes.
Add ability to force links to be a collection.