Import keyboard SourceHook code from cefclient to comprehensively handle key modifiers
Simplified OnPreviewKey so that it only deals with keys that would have been handled by WPF
Cleanup Adding/Removing of SourceHook by using PresentationSourceChangedHandler
Improve formatting and include comment about source code origin
As per MSDN article's recommendation always call base.OnPreviewKey method so that subscribers are notified.
Merge pull request #706 from amaitland/cleanup/wpf-keyboardhooks

WPF Cleanup Keyboard SourceHook Take 2