remove stack trace tweaks

WIP DO NOT MERGE

* [x] Add acceptance tests for the various combinations of Handler, MessageModule and UOW exceptions
  * [x] Verify root exception type
  * [x] Verify nested exceptions types when it is an `AggregateException`
  * [ ] 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??
* [ ] Add test for `SetExceptionHeaders` 
  * [ ] Test for Inner exceptions of `AggregateException` is not ignored
* [x] Remove StackTracePreserver
* [x] For use interactions points (handlers, UOW, MessageModule) catch and re throw an `AggregateException`
  * [x] If more exceptions need to be added to the above then throw a new merged `AggregateException`. For example `UnitOfWorkBehavior` will need to be changed to not "wrap an AggregateException in another AggregateException"
* [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)
My change has nothing to do with that. if innerexceptoin is or is not serializable then preserving the stack trace (or not) has no impact. StateMachineException  is serializable. and as we have identified rethrowing a non-srializable innerexception (even with the preserve stack trace) will corrupt the exception