Logging start/end times for a trace when a trace is started/stopped
mark trace as dirty if it is stopped before its started
added default tracer option for easier testing
* trace can now be applied around a block of code and
  supplies yields itself for annotations/etc.
tracer is started/applied only if its allowed to
run
tracer, span, annotations get a to_hash method and a to_json method
which calls to_hash internally to expose the object as json