Reworked reference schemas to allow easier programmatic referencing.

ReferenceSchema objects now have an additional constructor that is for programmatic use. It allows someone to create a reference to an existing Schema object, which makes it much easier to incorporate an existing Schema object into a Schema that is being built.

The version has been upgraded to 1.2 to reflect this change.