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)
Makes sense, just checking!