Evaluate default procs in context of instance

This is WIP, just opening to discuss.

This is an alternative to https://github.com/orgsync/active_interaction/pull/221

Essentially, this enforces the constraint that `clean` and `default` require an actual instance to work. `cast` does not, as such, `cast` cannot do some of the things that it used to do so I moved those things to `clean`. 
I'm not sure about the `.respond_to?` condition here, if it's not there you'd get an undefined method error which is handy. On the other hand, you couldn't ever set your default to a symbol which may be a proper use case.