Remove BroadcastActor

This has suffered from a little scope creep and there are some fairly scary changes here (for me anyway)

I've moved and implemented what is in DeathWatch.scala to ActorCell.DeathWatch.
There is no BroadCastActor any more for WatchedBy (or at all).
The change that had the biggest effect (on the unit tests at least) is that as with the JVM version ActorRef now overrides Equals and GetHashCode.
To fix the (many) broken unit tests I've had to change TestProbe so that it appends an incrementing Id to the address. This is what the JVM version does.

I've implemented WatchedBy as a HashSet. It was a concurrent dictionary in BroadcastActorRef.
I'm not 100% certain this is correct so would appreciate it being checked.

The unit tests pass, although I've noticed that DefaultResizer_must_use_settings_to_evaluate_capacity in ResizerSpec seems to fail intermittently (it does this for me from the current dev branch too).