Convert cells to use a transport URL

Cells currently keeps all inter-cell communication data, including
usernames and passwords, in individual columns in the "cells" table
of the database.  This renders it difficult to specify alternate
transports (e.g., 0mq).  Work is currently in progress to add the
concept of "transport URLs," but the end goal is to remove this data
from the database entirely and store it in a configuration file.

This change adds transport URLs to cells in a very limited fashion;
only rabbit URLs are recognized, and no auxiliary data is recognized.
This cleans up the database table, and will make it easier to move
cell data out of the database and into the configuration file.

Partially implements blueprint eliminate-clear-passwords-from-cells-table.

Change-Id: I6b18f7643ab694f5ff34206b80865c40b1ec2680
Load cell data from a configuration file

**WIP**

Cells currently keeps all inter-cell communication data, including
usernames and passwords, in the database.  This is undesirable and
unnecessary, since cells data isn't updated very frequently.  This
change allows cells data to be drawn from a JSON file specified via
a new [cells]cells_config option.  When specified, the database is
no longer consulted when reloading cells data.

Implements blueprint eliminate-clear-passwords-from-cells-table.

DocImpact: Cells may now optionally be configured through a JSON-
formatted file.  The file will need the columns present in the Cell
model (excluding common database fields and the 'id' column).  The
queue connection information must be specified through a
'transport_url' field, instead of 'username', 'password', etc.  The
transport_url has the following form:

    rabbit://<username>:<password>@<hostname>:<port>/<virtual_host>

The scheme may be either 'rabbit' (shown above) or 'qpid'.

TODO:

* Update the test suite to test the newly-added code and verify
  behavior when cells_config is provided

Change-Id: I7046ce55a0a294293c1b1a5fb0f092aeb891ee01