Inital support for debug hooks
Support juju debug-hooks

More tests to come.
More tests for debug-hooks
Address review comments for debug-hooks

One more to come, after I merge from trunk.
Merge from trunk
Use new names package

Also, fix a unittest and gofmt.
debug-hooks: organise imports
debug-hooks: code cleanup (review comments)
Merge with trunk
[r=axwalk],[bug=1027876] Support juju debug-hooks

This implementation is a departure from pyjuju, as we do not
have Zookeeper's ephemeral nodes to rely upon for locking.

The approach taken is described here:
  https://bugs.launchpad.net/juju-core/+bug/1027876/comments/11

Rather than periodically checking tmux, I've just gone for
a simple approach of calling "tmux has-session" each time a
hook is to be executed. If this proves to be too expensive,
then reassess.

https://codereview.appspot.com/12019043/
Return  nil rather than an error in storage.List() when the Azure container doesn't exist.
[r=julian-edwards] In the Azure provider, ensure that an absence of a storage container when doing a List() is interpreted as "no files" rather than a fatal error.