Wire up diskmanager to machine agent

All machine agents now run a diskmanager
worker. There are a few small changes to
the diskmanager itself, too:
 - block devices are now sorted by name
   before being sent to the API server
 - if block devices haven't changed since
   the last time they were sent, they
   will not be sent again
 - block devices that do not exist in
   /dev, but are listed by lsblk, are
   now ignored (this happens in LXC)
worker/diskmanager: don't build lsblk code/tests on non-Linux
cmd/jujud: fix diskmanager tests on Windows

- Add test that checks worker is started
- Change tests that waits for state to be
  updated to only run on Linux.
worker/diskmanager: test NewWorker

- Test NewWorker runs a no-op worker on Windows.
- Test NewWorker eventually calls the BlockDeviceSetter
  on Linux.
- Shuffle code around so it works on Linux and Windows.
Make block device listing function configurable

... and mock it out in jujud tests.

Also, make use of this to test NewWorker in
a platform-independent manner.
Merge pull request #1141 from axw/wireup-diskmanager

Wire up diskmanager to machine agent

All machine agents now run a diskmanager
worker. There are a few small changes to
the diskmanager itself, too:
 - block devices are now sorted by name
   before being sent to the API server
 - if block devices haven't changed since
   the last time they were sent, they
   will not be sent again
 - block devices that do not exist in
   /dev, but are listed by lsblk, are
   now ignored (this happens in LXC)