ExpectExtensions: add new overload to WithBody to receive an IResolveConstraint

This is useful in case you want to use WithBody but cannot match the
word fully (like for example when having a DateTime.Now inside it), so then
you can use things like Is.StringContaining() or Is.StringStartingWith()...
Merge pull request #5 from 7digital/AddResolveConstraintToWithBody

Add resolve constraint to with body
RequestHandler: add a new Times() extension method

This is useful for load tests, for instance, to know that your endpoint
received the N number hits you're expecting your app to be generating.
HttpServer: log any exceptions that may happen, when trying to start

This will give extra logging information that may be very useful.
HttpServer: Fix IsAvailable() to be able to return FALSE

If the method .Start() of HttpServer was not called, IsAvailable() was
throwing an exception instead of returning FALSE.

This change has the added benefit that makes HttpMock work when run
with Mono. Why? Because apparently the _thread.Start(); in Microsoft.NET
is so fast that IsAvailable always returned TRUE when queried AFTER the
server thread had already started Kayak. In Mono, this call must be slower
maybe because the secondary thread is given less priority, so then
IsAvailable was throwing the exception and not using the retrying loop
(that is already in place) properly.

(So this is not a Mono bug. When using multi-threading code, you should
never assume any certain speed of any thread.)
Merge pull request #9 from knocte/fixIsAvailableWhenServerNotStarted

HttpServer: Fix IsAvailable() to be able to return FALSE
Merge pull request #8 from knocte/addTimesExtensionMethod

RequestHandler: add a new Times() extension method
Merge pull request #6 from knocte/logAnyExceptionsWhenStartingKayak

HttpServer: log any exceptions that may happen, when trying to start
HttpEndpointTest: improve a test to not be flaky

Move the teardown part of the test into a finally block.
Add a try-catch to the teardown because an exception can happen, but
which shouldn't make the test fail, just produce a warning maybe.
Merge pull request #10 from knocte/FixFlakyTestDueToItsTearDown

HttpEndpointTest: improve a test to not be flaky
HttpServerTests: don't use a certain port to test, but find an available one

This is because that port may be in use by something else in the host
where the tests run (internally in 7d this was failing in buildagent009
but not in buildagent001!).
Merge pull request #11 from knocte/fixOtherFlakyTestBecauseOfUsingACertainPort

HttpServerTests: don't use a certain port to test, but find an available one
UnitTests: Delete old file HttpServerFactoryTests

It wasn't included in the solution, and when including it, it doesn't
compile, so it must be really old.
HttpServerFactory: allow getting a 2nd server in the same port

Even if disposing the previous server, HttpServerFactory class was not
allowing to create a new server in the same port.
HttpServerFactory: micro-optmization in the Create method
Merge pull request #12 from knocte/master

UnitTests: Delete old file HttpServerFactoryTests
Merge pull request #13 from knocte/master

HttpServerFactory: allow getting a 2nd server in the same port