Attribute ID + type

This pull request implements separate IDs for component attributes, which is same as the variable/property name. ID's will be stored to txml's and used for identifying attributes, while attribute's human-readable/editor name can be changed without breaking scene files. 

Attribute types are also stored to txml's, fixing issue #232. Furthermore attribute typenames are now properly camelcased, for example AssetReference.