added upgrader hook
Merge branch 'master' into Development

Conflicts:
	SystemDotMessaging/Projects/SystemDot.Esent.Test/Program.cs
	SystemDotMessaging/Projects/SystemDot.Messaging.Specifications/InMemoryChangeStore.cs
	SystemDotMessaging/Projects/SystemDot.Messaging.Specifications/external_hooks/when_receiving_a_reply_on_a_channel_with_some_external_hooks_setup_for_a_different_message_type.cs
	SystemDotMessaging/Projects/SystemDot.Messaging.Windows/Hooks/External/ExternalHook.cs
	SystemDotMessaging/Projects/SystemDot.Messaging.Windows/Hooks/External/ExternalHookLoader.cs
	SystemDotMessaging/Projects/SystemDot.Messaging.Windows/Hooks/External/ExternalHooker.cs
	SystemDotMessaging/Projects/SystemDot.Messaging.Windows/Hooks/External/IExternalHook.cs
	SystemDotMessaging/Projects/SystemDot.Messaging.Windows/Hooks/External/IExternalHookLoader.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Configuration/ComponentRegistration/CoreComponents.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Hooks/External/ExternalHook.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Hooks/External/ExternalHookLoader.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Hooks/External/ExternalHooker.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Hooks/External/ExternalInspector.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Hooks/External/ExternalInspectorHook.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Hooks/External/ExternalInspectorLoader.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Hooks/External/IExternalHook.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/Hooks/External/IExternalInspector.cs
	SystemDotMessaging/Projects/SystemDot.Messaging/SystemDot.Messaging.csproj
	SystemDotMessaging/Projects/SystemDot/Storage/Changes/Upcasting/ChangeUpcasterRunner.cs
	SystemDotMessaging/Projects/SystemDot/SystemDot.csproj