make Genome::Logger more like a singleton
add *f methods analogous to printf
add failing test

This test shows that the memoization was independent for list and scalar
contexts.
tell memoize to reuse scalar cache in list context
fix memoization sensitivity to list/scalar context

* tell memoize to reuse scalar cache in list context
* add failing test
return early to make it easier to add additional conditions later
use a message template to make it easier to add future conditionals
make conditional order match message order
only error if Nessy and File locks are inconsistent
whitespace
add instrumentation for inconsistent locking
use Genome::Logger instead of error_message

We were using error_message so they would show up in Logstash but we
don't really consider these errors yet and we don't want users to see
them.  Genome::Logger is setup so debug messages go to Syslog (and
therefore Logstash) so use that instead.
add instrumentation when both locks acquired
add instrumentation to Genome::Sys::Lock

* add instrumentation when both locks acquired
* use Genome::Logger instead of error_message
* add instrumentation for inconsistent locking
* whitespace
* only error if Nessy and File locks are inconsistent
* make conditional order match message order
* use a message template to make it easier to add future conditionals
* return early to make it easier to add additional conditions later