Events: Introduce AcpiForceGpe() to fix an issue that the debugger cannot enable/disable GPE unconditionally.

There is a facility in Linux, developers can force GPE enabling/disabling
through /sys/firmware/acpi/interrupts/gpexx. This is mainly for debugging
purposes because such GPE enabling/disabling operations are out of the
drivers' control and hence are dangerous for the following conditions:
1. If the drivers are not IRQ polling capable and the disaling is forced,
2. If the drivers are not interrupted IRQ capable and the enabling is
   forced.

Currently this facility invokes reference counting based GPE enabling APIs
- AcpiEnableGpe()/AcpiDisableGpe(), which has confused users for so long
time as:
1. Such APIs could not disable the GPE unless the GPE is not shared, not
   wakeup capable and not enabled by the driver more than once.
This facility also breaks system wakeup code and drivers by messing up the
reference count.

This patch introduces AcpiForceGpe() to be used in such situation instead
of AcpiEnableGpe()/AcpiDisableGpe().
It is said that the stale events clearing is required by this facility to
avoid wrong _Lxx/_Exx method invocations caused by the events appeared
during the forced-disabling period, and the clearing is working because
most of such GPEs are used for system wakeup purposes and can be simply
acknowledged by clearing the GPE status without taking any additional
responses. Thus this patch keeps this logic in the new API.

This patch also modifies AcpiGetGpeStatus() to return more information
from ACPICA core to reflect this forced status. Lv Zheng.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>