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
merge parent
address review
Update names package to fix serialization issue

**fixes-1381626**
merge parent; fix conflicts; address review
Merge pull request #912 from johnweldon/lp-1381626

Update names package to fix serialization issue

**fixes-1381626**
api/reboot: Skip building tests on ppc64

An apparent gccgo linking bug prevents the tests from building on
ppc64. Just avoid building the test file for now.

Also adds missing copyright headers.
Merge pull request #915 from bz2/ppc64_skip_test_build_1381671

api/reboot: Skip building tests on ppc64

An apparent gccgo linking bug prevents the tests from building on
ppc64. Just avoid building the test file for now.

Also adds missing copyright headers.

http://reviews.vapour.ws/r/176/
Merge pull request #834 from fwereade/hook-queue-2

separate hook queue algorithms from concurrency logic

This is a very early step towards creating a global hook queue for the uniter, allowing us to implement leader election with a chance of injecting leadership change hooks in a reasonably timely fashion.

It's a long way from perfect; the dependency on params.RelationUnitsChange is extremely yucky, and there's something questionable-at-best about tying the watcher to the consumer of its events, but I think it *is* better than what we currently have. And it is a straight refactor: while it may not be apparent, because I carved pieces out of hookqueue.go until I had something I was happy with, the logic has not changed at all -- the only change to the existing tests is to add an alternative method to the `checker` interface to allow me to clone the existing tests and run them directly against the HookSource interface.

It's also very likely that much of this logic is in the wrong package, but I don't plan to move it until it's clear where it should go: moving it into uniter/hook is the obvious choice, but is not currently possible without import cycles, and this PR is big enough already.
Fix uniter test for the periodic execution of the collect-metrics hook.