SMBus smart battery driver attempt 2

This is a driver to support "smart batteries" that can return various bits of info using SMBus which is very similar to I2C.

Discussion on the first attempt can be found in the original Pull Request here: https://github.com/PX4/Firmware/pull/1486

Changes since the first pull request are:
1. rebased on master
2. reads current
3. uses CRC-8 (aka packet error checking) to validate all values read
4. search added which looks for smart batteries on the active I2C bus.  This feature can only be run from the shell.