rpc: Automatically relisten when listening fails.

Motivation: BT can cause listening to fail on devices when the BT
settings are turned on and off. We would like clients to connect to
servers once both have BT enabled, regardless of when it is turned on.
The clients BT settings don't matter since the client retries its RPCs,
so when it turns on BT, the RPC will work. But, when the server has its
BT off, the BT classic net.Listener can fail causing the server to stop
listening.

Two flow manager listening cases to handle:
(1) NewListener() fails (i.e. BT classic is turned off before the server
    is created)
(2) listener.Accept() fails (i.e. BT classic is turned off during the
    lifetime of the server)

This CL solves the issue by having the server relisten when listening
fails for either of these reasons (similar to how ProxyListen works at
the moment).

MultiPart: 1/2
Change-Id: Ia559eb1439ddca80a6d43b0cedda09e37423a479
2 files changed