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.
Sounds good to me.
I'd like to see the type resolution abstracted away from `Type.GetType` to something that forces us to verify the resulting type.
e.g.

```csharp
//just from the top of my head, but you get the idea
Type ResolveType(string typeNameOrAlias,Action typeNotFound, Type mustBeAssignableTo = null)
{
     //resolve type and call typeNotFound if no such type found..   
     //ensure type is assignable to mustBeAssignableTo 
}
```

We use `Type.GetType` all over the code base with none to some verification on the result.