For rebind, we need to persist mutable type info.

For effectors as methods v tasks I'm inclining more and more towards the latter.  Here's why:
* methods becomes cumbersome if you want to share behaviour / effectors across things
* you can't have optional arguments or defaults w methods
* task model and remote invocation gets complicated w methods
* if we're building up entities from chef and yaml then we need this mutable approach anyway, so the method marked `@Effector` approach is necessarily just a convenience on top of it

Agree it's more complex but it's necessary complexity, and given that is the `@Effector` syntactic sugar worth it?  BTW I think we need time to play with Java8 to see if its lambda support might make it even simpler in the effectors-as-tasks world.