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
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.
Firing callback on replies only

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

Closes #2515
change for readability
Merge pull request #2480 from Particular/callbacks-with-messageid-eq-cid

Firing callback on replies only
Making sure we handle v30.0.0 correctly
Merge pull request #2474 from Particular/Issue_2047

Performance counter can hang
Renamed file to match class name