drv_io_timer Support OneShot
drv_io_timer Support OneShot

  1) Updated copyright
  2) Defined BOARD overrideable BOARD_PWM_FREQ and BOARD_ONSHOT_FREQ
     Not recogmended but allow experimentation
  3) Solved the support for BOARD_PWM_DRIVE_ACTIVE_LOW using
     the Polarity control bits as apposed to the negation of
     the ARR.
  4) Added a cache for getting a timers channels. This is static
     and benifits from the qucik response.
  5) Added a function to realocate all channes in a given timer
     from one mode to another.
  6) Removed the frequecy table in favor of the intended use of the
     channel mode set. At it is the way to determine the mode of a
     channel. Or in onshot's case a timers's complete set channels.
  7) Added 2 lowlevel mode changing functions:
     io_timer_set_oneshot_mode and io_timer_set_PWM_mode
     that encapsalate the changes in mode to one place
     in the code.
  8) Added io_timer_trigger (the up_pwm_update) with low
     latancy timer to time in updating.
  9) io_timer_set_rate - use sets to enforce all or none
     rules for switching  PWM<->OneShot.
     Onshot is entered using the very approriate rate of 0.
     Only deltas will change the HW state.

mcgill-robotics/Firmware,dagar/Firmware,PX4/Firmware,Aerotenna/Firmware,PX4/Firmware,mje-nz/PX4-Firmware,mje-nz/PX4-Firmware,acfloria/Firmware,Aerotenna/Firmware,PX4/Firmware,acfloria/Firmware,mcgill-robotics/Firmware,acfloria/Firmware,jlecoeur/Firmware,jlecoeur/Firmware,mcgill-robotics/Firmware,jlecoeur/Firmware,PX4/Firmware,krbeverx/Firmware,dagar/Firmware,mcgill-robotics/Firmware,PX4/Firmware,Aerotenna/Firmware,acfloria/Firmware,dagar/Firmware,jlecoeur/Firmware,PX4/Firmware,acfloria/Firmware,dagar/Firmware,mje-nz/PX4-Firmware,mcgill-robotics/Firmware,acfloria/Firmware,krbeverx/Firmware,jlecoeur/Firmware,dagar/Firmware,Aerotenna/Firmware,dagar/Firmware,mje-nz/PX4-Firmware,jlecoeur/Firmware,krbeverx/Firmware,krbeverx/Firmware,krbeverx/Firmware,Aerotenna/Firmware,mcgill-robotics/Firmware,Aerotenna/Firmware,mje-nz/PX4-Firmware,jlecoeur/Firmware,mcgill-robotics/Firmware,PX4/Firmware,jlecoeur/Firmware,krbeverx/Firmware,dagar/Firmware,mje-nz/PX4-Firmware,krbeverx/Firmware,mje-nz/PX4-Firmware,Aerotenna/Firmware,acfloria/Firmware