android_adb: clean-up and rationalise the code

The code was getting fairly hairy and has benefited from a cull of the
code to simplify the amount of state we keep.

 - unify adb_backend_tcp_state into adb_backend_state
 - remove connected, fd and tag fields, just use ->chan and ->listen_chan
 - don't manually clear Source, use return during connect sequence
 - sprinkling of commentary at the salient points
 - added a bunch of asserts to ensure things stay consistent
 - try and pass around &adb_state as *bs where possible
 - squash all fprintf's into DPRINTF
 - link current active chan to adb_pipe->chan