Implement global shortcut API, fixes #439

@zcbenz, please take a look! 
And thanks for @orzFly on windows platform implementation.
The converted `base::Callback` has already handled the locking, so there is no need to lock here, see:
https://github.com/atom/atom-shell/blob/master/atom/common/native_mate_converters/function_converter.h#L35