[UNSTABLE] Remote fixes, Finite State Machine, and more!

**Warning** Remoting is currently broken as of this pull request, because I am in the middle of porting most of Akka's remoting infrastructure.

This pull request includes a large number of changes that I was not able to rebase for some reason (sorry!)

Changes include
* full support for the `FSM` finite state machine actor, including relevant specs
* graceful termination support and relevant specs
* listener support, and relevant specs
* TestTransport support, and relevant specs
* Lots of other small changes to Akka core
* Lots of additions to `AkkaSpec` and the `TestKit`

I'm actively working on the remoting stuff now and expect to be finished with it this weekend, but I didn't want to hoard these commits for any longer than needed.