Performance counter can hang

This commit attempts to deal with the issues raised by users that when performance counter are newed up can hang the process.
This seem to occur mostly when running NServiceBus in IISExpress 8.

We are now doing the performance counter check (counter.CounterType) in a timed bombed thread that if it doesn't return within 2 seconds we mark the counter as not "healthy".

Took this opportunity to also refactor the performance code to centralise it all in the PerformanceCounterHelper class.
Changed SByte.MaxValue to 128 to be more readable
Merge remote-tracking branch 'origin/develop' into Issue_2047
Removed check for performance counter healthy

This will ensure that the process does not hang.
Made logging name out of type
improve perf of InMemoryTimeoutPersister
Use the delegate builder to avoid reflection in the databus
Removing NServiceBus.Testing

Moved to https://github.com/Particular/NServiceBus.Testing

Fixes #2205
Adding InMemoryDatabus that used to be linked from testing
Implementation of DataBus definition
Added extension method to register IDataBus custom implementations

Added return to UseDataBus so we can extend it via fluent, eg:
config.UseDataBus<FileShareDataBus>()
         .BasePath(path)
config.UseDataBus<AzureDataBus>()
         .ConnectionString(connStr)
config.UseDataBus(iDataBusImplType)
Renamed core databus to databus only

Made file based one internal
typo
Update acceptance tests to use new api
Modified the features activator to execute feature defaults respecting dependencies order.

This allows to activate features from other features on the fly, see FeatureDefaultsTests.Should_enable_features_in_defaults test.
Cleaned up databus specific implementations so they do not need to enable themselves.
Merge pull request #2487 from Particular/InMemoryTimeoutPersisterPerf

improve perf of InMemoryTimeoutPersister
Firing callback on replies only

Fixes #2252
Failing test for #2515
Not calling saga not found handlers for timeouts

Closes #2515