Add support for RFC2117 remote serial ports

The SerialProtocol object is written in a way that means it cannot connect to serial devices over ethernet to serial bridges, etc.

This should be rewritten to use the serial.serial_for_url() function to open the serial connection, so that multiple connection types can be supported.

Edited by Paul Grimes