rtu: add serial port interface

Add the interface classes for serial port with Port Factory classes to
make the code extensible for future in case a new hardware port type is
introduced. This also makes the unit testing easy by creating a Mock
Port using socat.

Tested:
```
meson test -C builddir test_port
ninja: Entering directory `/host/repos/Modbus/phosphor-modbus/builddir'
ninja: no work to do.
1/1 test_port        OK              5.02s

Ok:                1
Fail:              0
```

Change-Id: Ic6bd982abf1ae993f76c39e3503d3a0402a692fe
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
diff --git a/rtu/meson.build b/rtu/meson.build
index e088f17..2c385b2 100644
--- a/rtu/meson.build
+++ b/rtu/meson.build
@@ -9,8 +9,16 @@
     dependencies: [default_deps],
 )
 
+modbus_rtu_port_lib = static_library(
+    'modbus_rtu_port_lib',
+    ['port/base_port.cpp', 'port/port_factory.cpp', 'port/usb_port.cpp'],
+    include_directories: ['.', common_include],
+    link_with: [modbus_rtu_lib, modbus_common_lib],
+    dependencies: [default_deps],
+)
+
 modbus_rtu_dep = declare_dependency(
     include_directories: ['.'],
-    link_with: [modbus_rtu_lib],
+    link_with: [modbus_rtu_lib, modbus_rtu_port_lib],
     dependencies: [default_deps],
 )