Move HWaccess in its own hal folder
Update HAL Class Diagram
Add `abstract_inout` as interface for IO
The HAL will work with all classes which provide the virtual functions of
`abstract_inout`. This allows us to create stubs for test purpose.