Added mutable property support and fixed numerous bugs.

- Added properties sample.
- Added support for adding and retrieving typed properties on a NodeStructure.
- Fixed issues parsing properties (previous implementation would not work at all).
- Fixed bug parsing structures that don't contain whitespace between their identifier and name.
- Added functionality to validate references when validate() is called on a RootStructure.
- Fixed bug decoding reference components.
- Fixed bug with Reference's toString() method.
- Extended the references sample slightly.