Updating to use structs instead of single object for multiple sensors

I spent some time and converted (for the most part, still based on a single HTSPB) your code from a single sensor to being contained within a struct object for use with multiple sensors connected to the same HTSPB. It now requires you to pass a I2CSensor* as first arg to every function.

If I've missed something beyond obvious let me know.

-tekulvw