Several fixes for newer kernels

Added some additional fixes for >= 2.6.37, as well as fixing some compiler warnings.

As of 3.2.0, linux/module.h needs to be included.  hid_register_driver() is no longer a function, it's now a macro.  This macro requires the the symbols: THIS_MODULE and KBUILD_MODNAME