Stop mutilating the callstack

* [x] Add acceptance tests for the various combinations of Handler,
* MessageModule and UOW exceptions
  * [x] Verify root exception type
    * [x] Verify exceptions types when it is an `AggregateException` when
    * multiple occur
      * [x] Verify stack traces are not corrupted
      * [x] Add acceptance tests for `SerializationExcepition`
        * [x] Verify stack trace is not corrupted
	* [x] Extract out common code from
	* `ManageMessageFailuresWithoutSlr.SetExceptionHeaders` and
	* `FaultManager.SetExceptionHeaders` to a helper method??
	* [x] Remove StackTracePreserver
	* [x] Remove `Try Ctach` from `BehaviorChain.Invoke`. no longer
	* needed with `AggregateException` approach
	* [x] Obsolete and remove usages of
	* `TransportMessageHandlingFailedException`. this will remove the
	* need for double handling of both `AggregateException` and
	* `TransportMessageHandlingFailedException`
	* [x] Make sure to log an error if errors a thrown in
	* OnFailedMessageProcessing
	* (https://github.com/Particular/NServiceBus/blob/master/src/NServiceBus.Core/Unicast/Transport/TransportReceiver.cs#L475)

fix tests

extract out SetExceptionHeaders

Fix UOW tests

remove redundant using

remove redundant test

we no longer trim stack traces
Merge pull request #2379 from Particular/removeStackTraceTweaksV5

Remove stack trace tweaks v5