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 uncaught errors and InterruptedException: now they rethown properly + added sending of errors to UncaughtExceptionHandler of thread that by default prints stack trace. 
4. Add creation on demand for default strategy, thread factory and executor services to minimize usage of resources.
5. Use default thread factory that creates deamon threads for a naive strategy.
Those `ForkJoinTask` classes are different 1st from Scala library, 2nd from JDK. AFAIK Scala's copy of JSR166 classes will be deprecated and removed in future versions of Scala.