kernel - Refactor machdep.cpu_idle_hlt
* Refactor machdep.cpu_idle_hlt. Operation works essentially the
same way as before but the code is a lot easier to read.
* Refactor mode 3 to have ACPI call back into machdep when entering
a C1 halt. Continue using HLT for this situation as we aren't
really sure what ACPI may or may not have done. MONITOR/MWAIT
might not be appropriate.
* Fix bug in cpu_smp_stopped(). Just because cpu_mwait_hints is
non-zero does not mean that there is an index entry for CPU_MWAIT_C1.
Use the last entry based on cpu_mwait_hints instead.
* Note that machdep.cpu_idle_hlt mode 2 still doesn't work as intended.