Refactor.
Add Trait class.
Add trait usage property and spec.
Refactor Method initialize.
Ignore rspec should warning.
Introduce AbstractMethod and TraitRefrence.

AbstractMethod is the base class for Method and Trait.
Pass root to Resource.
Add ResourceType and ResourceTypeReference.
Add the "is" property to Resources.
Add Schema and SchemaReference.
Misc.
Introduce UnknownProperty exception.
Schema fixes.
Make schemas, traits, and resource_types in Root return hashes.
Add the name to Schema.
Access methods and method to expand schema references.

- Abstract child access methods.
- Return hashes for some properties.
- Expand schema references into schemas.
Merge #traits and #trait_references methods
Inline traits by replacing trait references.
Merge #type and #type_reference methods
Inline resource type references with resource types.