1. add pwm & timer capture interface
  - opening pwm or time capture will not cause allocation of relavant gpio
  - relevant gpio can be allocated and connected to timer by 'setOutputEnable' or 'setInputEnable'
  - to solve unneccesary gpio dependency (not always needed though)
 2. working ADC Hal