Adds ErrorCodes.NOT_DEFINED
Avoids redefining properties in instances

This happens for models without id property and with one or more keys.
This is kind of a workaround for now.
Passes orm connection to every defined model
Adds initial Model.extendsTo(name, properties[, opts])

This was an initial copy from Model.hasOne.
.has*, .get* and .set* should be correctly working now
Adds extendsTo.delAccessor, changes setAccessor to take advantage of the delAccessor
Lints some missing empty lines to Readme.md, adds initial extendsTo documentation
Passes 'extension' information to hasOne associations

An extension model has a hasOne association to the initial model, but
there's actually no association (avoids duplicating column
association_id)
Uses extension option to know when a model is an extension

Also in this commit:
- passes singleton uid to instance
- previous addInstanceProperty workaround is now deprecated
- exposes singleton uid in instance
Updates Model.extendsTo to clear singleton cache when removing an extension (because of readding)
Updates drivers DDL to support extension tables
Adds initial Model.extendsTo tests
Adds more tests to Model.extendsTo

Improves code coverage on Association/Extend.js
Adds note to Model.extendTo documentation
Merge pull request #218 from dresende/model-extendsto

Model.extendsTo()