return after Skip is unreachable
Remove bucket rescan rest stuff
Load databases on demand

Databases are no longer preloaded and are now fully evicted from memory
when passivated.
Remove unused method
Send quiesce through the normal close API
Run periodic tasks without relinquishing control

This change prevents a deadlock in the registration/quiescence
interaction while keeping the same semantics regarding concurrent job
execution.

I also reworked the test slightly to use atomics since the race detector
pointed out that was a good idea.
Move low-level bucket listing into test (where it's used)
Run slower tests in parallel
Refactored buckets ops to not use locks

This is important for allowing a less blocky state machine around
loading when loading itself could potentially be slow.
Strange unreachable code yielding after completion
Asynchronous bucket open machinery

This is slightly more complicated, but many buckets can concurrently be
trying to open while other buckets are being accessed.

Bucket opening can be as slow as we need it to be (http request,
retries, etc...).

Concurrent requests for the same bucket are stacked such that the
completion of opening sends the same bucket to all the participants
before registering it as a valid bucket.
Made the buckets state machine types easier to follow
Allow database config to be dynamically discovered

Given a -config-svc base URL, unconfigured buckets are dynamically
requested as baseurl + bucketname when a bucket isn't resident or on
local disk.  If that resource returns 200 and we can parse the result as
JSON, we parse this into a bucket settings struct and create the
requested bucket.
Implemented most of observation command

This has all of the infrastructure, but doesn't properly validate the
underlying data.
Fix CAS failure responses
Disable tap mutation log by default

cbugg: close bug-854