More property work (refrence properties, generic property sets)

Interface changes to suport generic toString and casting from property types to strings.

RefrenceProperty allows a property to be constructed that points directly to a variable in memory, used to allow access to internal members as properties. Some mechanism for 'dirtying' these values may be required.