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.

Hopefully this fixes #2047 
this is bad since if people want to filter logging based on the `NServiceBus` prefix they will still get these messages