convert to devices list
error out if IsSerialPort has no platform implementation
use a typed malloc macro
fix IsSerialPort for linux
implement part of SerialPortGetDeviceList
add function to handle appending of devices to list