intel-iommu: add dmar_enabled variable to IntelIOMMUState

Add member dmar_enabled to IntelIOMMUState so that we don't need to read the
GSTS_REG to know if the dmar is enabled every time.
The vtd_iommu_translate() needs to decide whether the translation is enabled
or not. So maybe this is more efficient.

Signed-off-by: Le Tan <tamlokveer@gmail.com>
intel-iommu: add Primary Fault Logging framework

Add Primary Fault Logging framework, including handling some corresponding
CSRs, add functions to generate msi event.
Handle some fault conditions, such as fail to read root-entry and so on.
However, access right and reserved bits are not checked yet.
Add DEBUG_INV for displaying debug info of cache invalidation.
Add DEBUG_FLOG for desplaying debug info of fault logging.
The is_write parameter of iommu_translate() is not real because this will need
a big change to the IOMMU callback function.

Signed-off-by: Le Tan <tamlokveer@gmail.com>