Reduce memory footprint of actors, add strategy that optimized for actors

Proposed changes and additions:
1. Reduce 40 bytes per actor instance by replacing `val` by `def` in `toEffect` definition.
2. Add strategy that more efficient in submitting actors for execution and handling of uncatched errors fix for Scala's ForkJoinPool while it cannot be used for evaluation of values.
3. Add better handling of InterruptedException.
This is fine now. I guess you can also add a commit which reverts #301 if you want.