Executables for multi-node testing and first multi-node cluster test

Here are the beginnings of what is needed for the cluster integration tests.
This adds two new executables
**Akka.MultiNodeTestRunner** and **Akka.NodeTestRunner** (better names appreciated).

Both executables use xunit 2.0 to do unit test discovery and execution. 
Multi-node tests will have to be written using xunit.

**MultiNodeTestRunner**
Looks at the test assembly specified as a command line argument and picks up all the relevant tests that it should run (currently all tests that end in a number, should be a bit more sophisticated).

A multi-node test looks like this 
```csharp
public class InitialHeartbeatMultiNode1 : InitialHeartbeatSpec
{
}

public class InitialHeartbeatMultiNode2 : InitialHeartbeatSpec
{
}

public class InitialHeartbeatMultiNode3 : InitialHeartbeatSpec
{
}

public abstract class InitialHeartbeatSpec : MultiNodeClusterSpec
```
The MultiNodeTestRunner looks at this, works out that it needs to create 3 processes to run 3 nodes for the test.
It executes NodeTestRunner in each process to do this passing parameters on the command line

**NodeTestRunner**
Picks up the parameters passed to it and executes the test specified.


I've implemented JoinInProgressSpec. It all seems to work with nodes waiting to enter barriers correctly.
There are also a number of fixes for Remote.TestKit in here.

Thoughts much appreciated.
Somewhat OT but this change got me thinking. Should we add support for case-insensitive aliases, so for example 
`"akka.testkit.testeventlistener"` would be an alias for the type name 
`"Akka.TestKit.TestEventListener, Akka.TestKit"` ?