pass instance around

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 haven't looked into this, but I wasn't sure off the top of my head what would have changed this or how to fix it in this new paradigm.