Initial commit

Pulled various parts from baseflight, made more generic, and reworked to
allow GPIO/I2C/SPI