restructured actor class hierarchy

this patch removes several classes and mixins in the actor class hierarchy and
introduces a new mixin facility (`extend<...>::with<...>`);
this patch also refactores several function signatures to take `actor_ptr`
arguments rather than `actor*`