Use testscenarios

Now that we're using testr rather than nose, we can actually use
testscenarios.

Nice diffstat ... 474 lines removed :)
Rework how queues get created in fake driver

Currently, if there are no servers listening on a topic then a message
to that topic just gets dropped by the fake driver.

This makes the tests intermittently fail if the server takes longer to
start.

Turn things on their head so that the client always creates the queues
on the exchange so that messages can get queued up even if there is no
server listening.

Now we also need to delete the "duplicate server on topic" test - it's
actually fine to have multiple servers listening on the one topic.
Make it possible to call prepare() on call context

Found it's quite easy to get into doing e.g.

  client = RPCClient(...)
  client = client.prepare(topic='foo')
  client = client.prepare(server='bar')
Test a bunch more RPC server scenarios