Change log level at runtime

* Added toggle_log_level to CLILogging which toggles the log level between debug and its original value
* Allow use_log_level_option to accept an options hash and install a signal handler which calls toggle_log_level upon receing the given signal

This implements #30
Ah, now I see what this is.  `opts` confused me somewhat.

I think it reads better with "named" args, but the name isn't quite right, it's more like "signal", so maybe:

```ruby
def use_log_level_option(args = {})

  # ...

  setup_toggle_trap(args[:toggle_debug_on_signal])

  # ...

end

setup_toggle_trap(signal)
  if signal
    Signal.trap(signal) do
      # ..
    end
  end
end
```

The callsite would then be:

```ruby
use_log_level_option toggle_debug_on_signal: 'USR1'
```

I tend to avoid boolean args since they make the callsite harder to understand and the args harder to change