async: Fix multi-switch bug in controller, api tweak

The previous implementation of Async_Controller did not work on a
network with more than one switch. The stream of policies was being
shared between each "logical switch thread", which meant that when one
switch read the latest policy, no other switch would see it.

The fix is to use an intermediate pub/sub abstraction in the from of
Async_extra.Bus. This will guarantee that all subscribes will receive
published values. By blocking on the Bus.flushed deferred, the code also
ensure that that switches update their policies in lockstep.

The API for the controller has changed so as to require an initial
policy.
async: Add start_static for static policy controllers

At the moment, most of our testing's done with a single policy in mind.
start_static takes this into account by not requiring you to build a
stream for no reason.