fix header names

this "creates" lot's of errors. Many are related to padded struct
alignment
have AD7685 store the read values internally

takes num_devices as a template parameter now

possibly, operator[] should occasionally automatically call read_uv()
when called (maybe if the particular index is requeried, or after some
timeout)
initial ltc6803 code.

inspired by C version. all core reading functionality should be there.
error reporting still hasn't been wrapped yet
adjust CAN channel assignment