Move low level ADC API call out of ADChan
The low-level ADC API adc_read
is called in ADChan::ReadValue function which isn't a good place if parent ADC::ReadValue function needs to be overloaded in customized ADC. For example, a derived ADC class overloads ADC::ReadValue that uses SPI transceive API.