Adding some new features from all of the rest of the existing forks of this code

This is an attempt to bring all of the existing forks together into the inital repo of the OBD-II library