cpufreq/zzmoove: implement native inputbooster

based on the work of faux123 in intelliactive.

modified to work with zzmoove, based on governor cycle counting.

monitors input events from tsp, gpio, and touchkeys and then applies
a two-stage boost. stage 1 is a "punch" that keeps the governor at or
above inputboost_punch_freq. it provides a short burst of speed for
the length defined in inputboost_punch_cycles. when those cycles are
depleted, stage 1 expires and stage 2 begins. stage 1 will not begin
again until stage 2 has been completely depleted. stage 2 is continually
replenished by each input event. but when input events stop, stage 2 will
no longer be replenished, and allowed to deplete for as many cycles
as are defined in inputboost_cycles, then the entire boost will be over.
on the next input event, the process will start over again with stage 1.

maximum flexibility was a goal with this design. for example, it is
possible to set inputboost_up_threshold to 0, which will effectively
disable the stage 2 boost (since at present there are no other
stage 2 boost options), while still allowing the stage 1 boost to work.
or, conversely, stage 1 can be disabled, while stage 2 can be left
to still work.

- inputboost_cycles
   0 = disables entire booster and unregisters input handler
   1-1000 = how many cycles to maintain the boost for

- inputboost_up_threshold
   0 = disables up threshold boosting during stage 2
   1-100 = the value up threshold will be set to during stage 2

- inputboost_punch_cycles
   0 = disables stage 1 boost (the momentary speed punch)
   1-500 = how many cycles to maintain a frequency no lower than
      that set in inputboost_punch_freq

- inputboost_punch_freq
   0 = disables stage 1 frequency boost. in the future there may be
      additional stage 1 boost options
   min-max frequency range = set to any available governor frequency.
      the governor will not drop below this frequency while stage 1
      boost is in effect
cpufreq/zzmoove: bug fixes and misc changes

various bug fixes and optimizations.