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`.