move filter implementation to its own package, put it behind an interface
use real NewFilter func in tests
Merge branch 'master' into uniter-extract-filter
unexport NewStoreManager
unexport NewStore
unexport NewStoreManager
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.
maas: fix availability zone selection
maas: add tests for availability zone selection
add doc comments to Filter interface
Merge pull request #1128 from fwereade/uniter-extract-filter

Uniter: extract Filter

This is trivial: I just put it behind an interface, moved it to its own package, and put the tests in a _test package.
Update utils dep.
Drop Metadata.Copy().
Merge pull request #1156 from ericsnowcurrently/backups-drop-meta-Copy

Drop Copy() from backups.Metadata

http://reviews.vapour.ws/r/447/

(Review request: https://reviews.vapour.ws/r/467/)
provider/maas: minor cleanup of availability zone loop
State upgrade steps: migrate statuses, constraints and annotations

Add an ugrade step for each of statuses, constraints and annotation
collections. Each step appends the environment uuid to the _id field
and adds a new env-uuid field.
unexport Store