cputimer/intr: Move powersaving intr cputimer switching to kern_cputimer.c

While I'm here fix several bugs:
- Don't take ERESTART as error
- Use serializer to protect the number of power saving request.  Using
  atomic_fetchadd_int is not enough here:
  The first power saving request could fail.  However, before its failure,
  other power saving request could be successful, since the intr cputimer
  switch is skipped.
x86_64/mwait: Request proper intr cputimer, if C3+ is used as hint

Though mwait's hint uses CPU specific C-state, we still believe that
C3+ hints are deep C-states, which may cause certain type of intr
cputimer hang (e.g. LAPIC intr cputimer on CPUs w/o ARAT).

While I'm here, make sure that mwait hint could not be changed on CPUs
that do not support monitor/mwait or mwait hint.