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.
You shouldn't make GemLogger have a dependency on log4r, instead, your default implementation here should probably just use a hash - that is, clients of gemlogger shouldn't have to pull in log4r to use the context helpers.  BasicLogger should also be changed to support contexts, most simple way would be to just add [key=val, key2=val2] at start of message.

I'd be ok with having a submodule that has log4r specific implementations of ContextHandler/LoggerConcern so long as the gemspec didn't have that dependency and those classes weren't included by default, but clients of gemlogger should be able to use all its functionality with lowest common denominator (i.e. built in ruby logger)