cthulhu: Refactor RequestCollection to be global

This is instead of having one per ClusterMonitor.  The
idea here is two accomplish two things:
* Expose RequestCollection to ServerMonitor
* Enable REST API to easily list all the requests

The alternative was to instantiate an additional RequestCollection
for servers.  This would have been awkward, because requests on
servers are also "in" zero or more clusters, so the API querying
for requests would have become complicated, touching multiple
RequestCollections.

A separate RequestCollection encapsulated in ServerMonitor would
also have lacked calls to its on_map method for notifications.  This
way, the global RequestCollection gets all notifications, so any
request (whether a cluster one or a server one) can subscribe to anything
its interested in.

Signed-off-by: John Spray <john.spray@inktank.com>
cthulhu: Nicer OsdRequestFactory messages

Special cases for in/out/down/reweight.

Signed-off-by: John Spray <john.spray@inktank.com>
cthulhu: make 'manhole' module optional

One less mandatory dependency.

Signed-off-by: John Spray <john.spray@inktank.com>
calamari_rest: Make graphite module optional

One less mandatory dependency.

Signed-off-by: John Spray <john.spray@inktank.com>
calamari_rest: gracefully degrade without sqlalchemy

Makes sqlalchemy optional: even history will always appear
empty if it is absent.

One less mandatory dependency.

Signed-off-by: John Spray <john.spray@inktank.com>
cthulhu: null persistence with no sqlalchemy

One less mandatory dependency.

Signed-off-by: John Spray <john.spray@inktank.com>
requirements: a new cut-down set of deps

The minimal requirements for a no-frills
calamari instance with just the core Ceph
API functionality.

Signed-off-by: John Spray <john.spray@inktank.com>
doc: clean up development/

Enables build in a much more lightweight
environment (such as readthedocs.org)

Signed-off-by: John Spray <john.spray@inktank.com>
doc: remove setup.cfg, broke RTD build

Known pip bug, certain versions dislike a
setup.cfg in source dir.  Removing our
CFG is harmless because it was only
setting test log format.

https://github.com/pypa/pip/issues/1531

Signed-off-by: John Spray <john.spray@inktank.com>
WIP updates to README
cthulhu: concentrate salt code in one place

Makes clear our interface with salt, makes our
modules importable without salt (useful for
e.g. building docs with sphinx autodoc)

Signed-off-by: John Spray <john.spray@inktank.com>
calamari_rest: use central calamari_common.salt

Signed-off-by: John Spray <jspray@redhat.com>