Log by changeset

The proposed changes make a minor modification to the Logger api to allow pushing and popping a String context.  This is used in the changeset visitor classes to push/pop the changeset description string (file::id::author) on the logger.  Calling applications or a logging adapter such as a JSON or greylog adapter can make use of the contexts to trace log messages back to the changesets that those logs originated from.

Very open to feedback on this.