Add names to actors to simplify debugging (Stocks Example) + example symbols
Merge pull request #161 from HCanber/stock-example

Add names to actors to simplify debugging (Stocks Example) + example sym...
From BroadcastActorRef, remove the inheritance to ActorRef.

BroadcastActorRef isn't really an ActorRef. For example, it does not have path.
Maybe it should be call BroadcastActorCollection or something in line with that.
Make ActorRef.Path {get;} abstract instead of virtual

This is done in order to avoid calling virtual members from constructor
Add Dispatchers.DefaultGlobalDispatcher
Add InvalidMessageException
Add RootGuardianSupervisor, aka theOneWhoWalksTheBubblesOfSpaceTime & RootGuardianActorRef
Add EmptyLocalActorRef and let DeadLetterActorRef inherit it.

We need DeadLetterActorRef to be an InternalActorRef
Add Logger.GetLogger(Loggingbus) and handle string log sources
Refactored VirtualPathContainer.GetChild()

Switched to enumerator to avoid multiple enumerations
Add helper method to test if type implements other type.

Basically it just calls IsAssignableFrom, but I find it hard
hard to remember in which order the arguments should be.
Add constant Mailbox.Debug and mailbox tracing

The Debug constant is a compile time constant that can be set to true
before compiling in order to get mailbox tracing on standard out.
Rewrite LocalActorRefProvider to be more in line with Akka

- abstract class ActorRefProvider has become an interface (Akka's
   trait has no implementation, so it works just like an interface).

- LocalActorRefProvider still differs from Akka's due to how
   LocalActorRefs and ActorCells are created (opposite order compared
   to Akka).

- 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.

The rest of changes are effects of the changes above.
Change the order Refs, Cells and Actors are created

The Ref 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)

Fixed bug: ActorPath.Parse must respect casing for system name

All changes are in line with how Akka does it.