Improved Plug and Play Error Handling

This should fix test cases:

UnexpectedError4
UnexpectedError7
UnexpectedError8
UnexpectedError9
UnexpectedError10
UnexpectedError14


These fixes follow the assumption in the testing document that the DGI should always generate an error message when it fails. This has resulted in the addition of two new TimedWrite statements in the code. These statements can cause the device thread to temporarily hang for CTimings::DEV_SOCKET_TIMEOUT milliseconds when the device controller fails to use the proper message format.