combined queue-channel implementations, factored out queue behaviour to eliminate considerations of goroutines
WIP; RUW no longer embedded in liveSource, otherwise functional
rearrange further, add some tests
pull many many commits from master
Merge branch 'master' of https://github.com/juju/juju into hook-queue-2
update imports
add direct tests for relation HookSources
add direct tests for relation HookSources (including new files :/)
fix docstrings
more docstrings
test less panicky on failure
[WIP] Support for filtering status on different criteria.

- From spec: https://docs.google.com/a/canonical.com/document/d/1olIjfnMIKPbNMmNBhfjwlnzdRvY-xBKygpIOhv7QIkE/edit#heading=h.tdsd6gcvc55e
merge parent
address review
Merge, refactoring, additional filters, tests.

- Merge branch 'master' into status-filtering.
- Filters moved into their own file.
- Now filtering machines as first-class objects.
- Filters broken down into atomic operations for re-usability.
- Meat of tests is now present.
Add IsLXCSupported()
Added tests

Added tests for the following cases:

* Mallformed cgroup file
* Missing cgroup file
* system juju is running on is not linux
use filetesting
Responded to feedback
Refactor the UserManager and commands.

This branch adds consistency to the UserManager.
Primarily around the use of tags to pass the usernames.
Also untangles the API client from the server that was
there with the user manager structs being defined in the
apiserver package (not params).

The commands have been hooked up, and tested manually.

There were several clear changes needed when testing:
 * until we have multiple environments, creating a user
   should cause that user to have access to the environment
 * when adding a user, we should always write out the jenv
   file (until the user is able to login and see themselves)
 * the remove user command has been renamed to disable,
   as it wasn't removing the user at all (this is still todo)