Use an event handler to dispatch log events

Use an event handler to receive and dispatch log events to
any handler that are registered. This allows for more multiple
handlers to be used simultaneously and allows them to be dynamically
added and removed from the application.
Refactor options processing in webmachine_mochiweb module

Refactor how options are process in the start function of the
webmachine_mochiweb module. Also add another option,
resource_module_option, to allow an option from the module options
list to override the default value for resource_module in the request
metadata.
Fix bug in webmachine_log:defer_refresh
Minor Dialyzer type fixes for Riak CS
Merge pull request #119 from basho/slf-type-fixes-201302

Minor Dialyzer type fixes for Riak CS
Fix comment formatting
Change log refresh to sync calls instead of events
Repair and refactoring of the etag eqc test

Change the property to use "*" as the value for the 'If' header if the
list of values generated for that header is empty. This simultaneously
corrects a bad expectation by the property and expands the scope of
the test. Also refactor the eunit setup to use a test suite and use
the eqc:testing_time function to execute for 10 seconds as oppoosed to
a fixed 250 iterations.
Merge branch 'klm-fix-etag-eqc-test'
Merge branch 'klm-event-logging'
Merge branch 'master' of github.com:basho/webmachine into ms-add-tests

Committing a merge.

Conflicts:
	src/webmachine.erl