Moves creating instance code to a single function in Model
Creates default option for instance.cascadeRemove (true)

When removing an instance, associations with it should be removed if
this option is enabled
Makes Instances trigger beforeRemove event
Moves cascadeRemove to association extending code, not needed in instances
Passes cascadeRemove default setting to model definition if not set
Changes hasMany associations to be able to make some call without callback
Changes hasMany associations to check for cascadeRemove and bind to beforeRemove event to trigger delAcessor before removing