Add context logging.

Add mocha for testing. Add a new ContextHandler that does the actual contextual operations that Log4r handles, the idea being that a user could define their own ContextHandler module that implements the three functions so that Log4r would not be required. Also, reorganize the include structure a bit around the main GemLogger module to help with some of the new includes.
By "included by default" I mean that clients of the gem would have to explicitly require something like "gem_logger/log4r" to get all the log4r integration classes as a convenience, but "require 'gem_logger' should not have a dependency on log4r.  Requiring "gem_logger/log4r" should then try to require log4r, maybe detecting a load error and printing a cleaner error message before exiting.