* add PCI 16x50 uart controller, refactor the 16x50 structure
* refactor the pci detection mechanism, allow custom compatibility
check logic.
* fix bug in pci device definition binding where only bind once
* refactor the 16x50 controller structure, move pmio and mmio
as separated component and does not need to couple with interface
* fix issue where x86:isrm_ivexalloc alloc duplicated interrupt vector
* change the signature of ioremap to return ptr_t instead of generic
pointer
* fix issue in LunaConfig header export, where non string type being
joined as a string type
* add config term for 16x50 controller.
* rework the usr/testp, allow user to specify serial interface
* usr/ls, add a slash after directory file name to distinguish
* add the implementation for iounmap
* refactor pci dev to use latest change in pci
* remove the out-dated, mask based compatibility check scheme
* rectify the issues with -O2 optimization
* refactor: allow Lunaix to compile with -O2 optimization
* add LConfig terms for PCI related features
* add LConfig terms for AHCI related features
* refactor the pci device code base with latest pci refactoring
* fix: fail to read bool type config term when the value of the
term is False
* refactor: LConfig: allow omit the `LConfig` when doing include
* remove legacy file