Merge pull request #151 from mmisztal1980/master

Akka.NLog adapter
Update README.md
Update README.md
Working on CircuitBreaker
Add AtomicBoolean and Switch
Merge pull request #154 from HCanber/atomicboolean-switch

Add AtomicBoolean and Switch
Fix Switch to use Akka.Tools.AtomicBoolean

This was due to me @hcanber adding Tools.AtomicBoolean and not seeing @rogeralsing just added one too.
Update README.md
Merge pull request #155 from HCanber/dev

Fix Switch to use Akka.Tools.AtomicBoolean

This was due to me @hcanber adding Tools.AtomicBoolean and not seeing @rogeralsing just added one too.
Moved atomicint/long to Tool namespace, altered CircuitBreaker to use this
Print more stats in the PingPong example

Now includes start time-the time to start the system and all actors, and a total time.
Merge pull request #158 from HCanber/pingpong

Print more stats in the PingPong example
Now includes start time=the time to start the system and all actors, and a total time:
Change Receive to work like Akka

The following changes are made:
Change Receive to bool Receive(object message) to mimic Akka's Receive which is a PartialFunction[Any, Unit]
In Akka this is the pseudo code for handling a message
if(receive.isDefinedAt(message))
  receive.apply(message)
else
  unhandled(message)

This commits implements it like:
if(!receive(message))
  unhandled(message)

Change ActorBase to behave like Akka
- OnReceive is pushed down to UntypedActor
- Introduce abstract bool Receive(object message)
- Introduce bool AroundReceive(Receive receive, object message)

Introduce IUntypedActorContext (corresponding to Akka's UntypedActorContext trait) and let ActorCell implement it.

UntypedActor's Receive() delegates to the new OnReceive() (just like Akka) and reimplements the Context property to return IUntypedActorContext.

Existing actors in Akka.Remote (ReliableDeliverySupervisor, TransportSupervisor, ActorTransportAdapterManager) and Akka.FSharp.FunActor now inherits UntypedActor instead of ActorBase. Someone with more knowledge of the code, should go through these and change to ActorBase (for guidance, see what was changed in FSMBase).

Change inheritors of ActorBase to override Receive instead of OnReceive.

When receiving DeathWatchNotification, only send Terminated to Self for watched actors
Merge branch 'HCanber-receive-like-akka' into dev

Change Receive to work like Akka

The following changes are made:
Change Receive to bool Receive(object message) to mimic Akka's Receive which is a PartialFunction[Any, Unit]
In Akka this is the pseudo code for handling a message
if(receive.isDefinedAt(message))
  receive.apply(message)
else
  unhandled(message)

This commits implements it like:
if(!receive(message))
  unhandled(message)

Change ActorBase to behave like Akka
- OnReceive is pushed down to UntypedActor
- Introduce abstract bool Receive(object message)
- Introduce bool AroundReceive(Receive receive, object message)

Introduce IUntypedActorContext (corresponding to Akka's UntypedActorContext trait) and let ActorCell implement it.

UntypedActor's Receive() delegates to the new OnReceive() (just like Akka) and reimplements the Context property to return IUntypedActorContext.

Existing actors in Akka.Remote (ReliableDeliverySupervisor, TransportSupervisor, ActorTransportAdapterManager) and Akka.FSharp.FunActor now inherits UntypedActor instead of ActorBase. Someone with more knowledge of the code, should go through these and change to ActorBase (for guidance, see what was changed in FSMBase).

Change inheritors of ActorBase to override Receive instead of OnReceive.

When receiving DeathWatchNotification, only send Terminated to Self for watched actors
Add Base64 Encoding helper

This will be used when creating temp actor names
Make Address IEquatable<Address> and add equality operators
Add ActorPath: Root, Parent, == and != operators. Make Elements an IReadOnlyCollection

Making Elements an IReadOnlyCollection makes checking for empty paths so much easier.
Include full exception when logging errors.

Useful information was missing, such as inner exception info.
Props should, when failing to create actors, have better error message
Fix spelling error in RoutingSpec