Moved input helper load/unload to the hook thread.
Cleaned up gitignore.
Changed to with/without for library dependencies.
Mostly header cleanups with some control fixes.
Stubbed out several probable events.  Making a commit before attempting to transforming hook start into an async function.
Hook start will remain sync while hook stop will be async for the time being due to the complexities of starting the hook.  Once I have a better handle on the startup and shutdown callbacks that may change.
Fixed several issues.  Looks like its working.
Fixed a small issue with the event name in the post event.
Fixed hook callback to properly convert and dispatch events with the addition of the start and stop events.
Ported changes for the hook start and stop events from X11 to OS X.
Trying to shoehorn the Posix cleanup solutions into the Win32 thread model with limited success.  There is no way to provide a stop event from the dispatch thread procedure if ExitThread or TerminateThread are used because no pthread_cleanup_push/pop API exists. There is no workaround or alternative to what I am going to refer to as a "gross oversight" in the thread model.  Sure you can cleanup at the end of the LPTHREAD_START_ROUTINE or in the hook_disable() function, but what good does that do you if someone calls ExitThread() or TerminateThread() from your callback and you never fire the stop event? #ItsAFeature
Fixed a few small api breaks.
Reverted test code for ExitThread and ThreadTerminate.
Put config back in the header because the header uses config options.
Added some late cleanup checks to the hook_is_enabled function to workaround Windows auto-magic thread cleanup.
Refactoring for cleanup.  Some minor stability teaks to prevent a deadlock in some situations.
Merge pull request #5 from kwhat/hook_events

Merging hook events branch into the trunk.