Crash with LXV7_EXP device driver
    and all others if it use "d->Com"  is Used in  dev::ParseNMEA ( Called by RxThreadProc )
call virtual function  from dtor of base class don't call function of derived class !

Add call to Close() in dtor of derived class of ComPort ( SerialPort & BthPort )
  for fix Incorrect close of RxThread ....
If 2 device is configured on same ComPort, second device must be  ignored.
fix missing CloseHandle(hPort) if ComPort Initialize Failed.
fix regression in new SerialPort,missing last char when write unicode string to serial port
replace win32 events by bool variable for request stop of RXthread (Ulli hang bug)
Avoid multiple close of ComPort.
Add Comment about locking
Add some missing file handle check
replace win32 events by bool variable for request stop of RXthread (Ulli hang bug) (reverse-merged from commit 9159b81849f5192f4f772c80727cbc199b838c8e)
Replace SetEvent(hStop); by EventModify(hStop, EVENT_SET); for compatibility with mingw32ce 3.15.2

mingw 3.15.2  wrong implementation is :

     static inline BOOL ResetEvent (HANDLE x) {
           return EventModify(x, EVENT_PULSE);
     }

     static inline BOOL SetEvent (HANDLE x) {
           return EventModify(x, EVENT_PULSE);
     }

Good implementation is :

     static inline BOOL ResetEvent (HANDLE x) {
             return EventModify(x, EVENT_RESET);
     }

     static inline BOOL SetEvent (HANDLE x) {
             return EventModify(x, EVENT_SET);
     }