Stop multi-node tests running as unit tests
Merge pull request #512 from travelrepublic/fixtests

Stop multi-node tests running as unit tests
Test runners will ignore the multi-node tests unless they are run from the multi-node test runner.
Introduce IScheduler and use it everywhere.
Refactor Scheduler to IScheduler and IAdvancedScheduler.

Scheduler no longer uses Task and CancellationTokenSource when scheduling sending messages. Instead a ICancellable is returned.
IScheduler contains scheduling sending messages in the future and scheduling of actions has been moved to be "hidden" inside IScheduler.Advanced.
The most common use case is scheduling sending self a message. Therefore extension methods have been added to IActorContext:
Context.SelfTellOnce() and Context.SelfTellRepeatedely

The old Scheduler api has been preserved, but marked as obsolete, using extension methods.
Use the new IScheduler api everywhere
Add Now property which returns the scheduler's notion of current time.