Reduce the number of ExpectMsg overloads from 15 to 5

We just had too many. The order of hint and timeout arguments could be varied (hint could be specified first, or last)
When using the testkit and seeing all different overloads made it hard to find the one you wanted.
Now the order is always
ExpectMessage(testIfCorrectMessage, timeout, hint)
timeout and hint are optional.
For example:
ExpectMessage<string>("test", TimeSpan.FromSeconds(2))
ExpectMessage<string>(m=> m=="test", TimeSpan.FromSeconds(2), "message must be test")

This is a breaking change
Add ExpectMsgFrom that also tests the sender
Split ActorOf with optional name argument to two separate functions

The reason for this is that we want to be able to use it in expressions, which does not allow optional argument calls
So without this fix, the second ActorOf would not be possible:
ActorOf(()=>new MyTestActor(ActorOf<BlackHoleActor>()))
Merge pull request #464 from HCanber/testkit-expect

Testkit changes.

The number of ExpectMsg overload have been reduced
This is a breaking change. If you get compile errors after this, just reorder the arguments according to the specification:
ExpectMessage(someSortOfSpecToTestIfCorrectMessage, timeout, hint)

Adds a new test, ExpectMsgFrom, function. Works like ExpectMsg but with an extra test that the sender is the expected one.

TestKit.ActorOf with optional name argument has been split to two separate functions