Redis-based matchmaker

Introduces a reference implementation
of a matchmaker (based on redis) that
supports dynamic host/topic registrations,
host expiration, and hooks for consuming
applications to acknowledge or neg-acknowledge
topic.host service availability.

Implements blueprint advanced-matchmaking

Change-Id: I8608d2089fca118b0e369f2eb5c6aedacf6821fe
Add simple in-memory cache from nova.

Nova's simple in-memory cache replicates the memcache interface,
so clients can cache things in memcache or in memory using
the same commands. Using memcached requires having the client
library installed and the memcached_servers config option set.
Callers can also pass in a list of memcached servers when they
initialize the client.

Change-Id: I831142a36797b04006cba4792df803e09f6fd69b
Merge "Redis-based matchmaker"
Merge "Add simple in-memory cache from nova."
Don't log a traceback on rpc call timeout.

There are cases where an rpc call is gracefully handled.  The rpc
drivers should just let the caller deal with this and decide whether it
is an error worth logging a traceback over.  Otherwise, we unnecessarily
raise alarm by leaving a mess in the log file.

Fix bug 1137994.

Change-Id: I0e831ddcc43ffea78aae1fb5e46c5037c461b2a1
Don't LOG.error on max_depth (by default).

Reverts part of a94b9b4 which added an extra LOG.error
statement when max_depth is hit.

This is causing spurious errors to get logged in some of our
projects which have adopted this changed.

Related to: https://bugs.launchpad.net/nova/+bug/1140133

Change-Id: Ie7939e41797da000dd8b269f905f351df0b7116d
Merge "Don't log a traceback on rpc call timeout."