* Added logic to figure out what type of host we're running on - Banana Pi or Raspberry Pi
* Split out the raspberry pi logic to separate classes that are created at start-up based upon the host configuration
* Added System Timer class for Allwinner H3 CPU
* Added stubs for GPIO BUS for Allwinner H3 CPU
Authored-by: Tony Kuker <akuker@gmail.com>
* Resolved issues 772, 827, 909
* Added numerous unit tests
* Code cleanup
* Improved type safety by using PbDeviceType instead of string
* Do not flush cache on failed STOP UNIT
* Error message and error handling updates
* Removed duplicate code
* Use map for mapping shift counts
* Reject read/write access if the drive has 0 sectors
* Updated logging configuration for tests
* Merged FileSupport into Disk
* Improved code granularity
* Made classes previously directly writing to cout testable
* Added numerous unit tests
* Fixed minor issues uncovered by unit tests
* Fixed SonarCloud issues
* Replaced remaining proprietary data types (WORD/DWORD) except for files in hal/