- 
Dan Rubel authoredThis moves the various copies of port forwarding code in the Device subclasses into the ProtocolDiscovery class. * move port forwarding to a common location * throw exception if protocol Uri is not discovered or port forwarding fails * cancel discovery protocol subscriptions on iOS launches (wasn't happening before) * fix iOS port forwarding to match other implementations * add tests 93e662ab