Let users optionally provide their own log.Logger

This commit makes a major change to the API - instead of using our own weird
trace mechanism, we now allow users to provide their own standard log.Logger
which can be configured to their liking. If no log.Logger is provided no trace
messages will be recorded.

Change-Id: Ifc3483eb76e6a79d9dcd7fae6e7afce920e4b2cd
Signed-off-by: Seth Hoenig <seth.a.hoenig@gmail.com>