ActorRefs creates Cells and create actor instances asynchronously

This is a **big** refactoring. "All" I wanted, was to change from Cells creating ActorRefs to ActorRefs creating Cells, like Akka. In order to get there a lot had to change.

- The ActorRef creates the Cell.
- The actor instance is created async, meaning we must make sure the mailbox
  isn't started and manually start it.
- Implemented RepointableActorRef (The tests for the router implicitly tests
  this)
- Abstract class ActorRefProvider has become an interface (Akka's
  trait has no implementation, so it works just like an interface).
- ActorCell and ActorSystem are both implementing IActorRefFactory.
  In Akka ActorRefFactory is a trait with implementations for
  ActorSelection(). ActorRefFactoryShared has been added that contains
  these implementations.
- Fixed bug: ActorPath.Parse must respect casing for system name

When reviewing this all but the last commit are pretty non controversial. These commits contains stuff necessary for the refactoring.
The last commit (HCanber:ref-cell-actor-creation@e4f692a80b39765c93bcddd2cad2abe1da493d96) contains the refactoring.

All tests are green. All samples working. PingPong shows that messages/sec has not dropped.

Good catch