General cleanup

I've packaged up a few improvements.  Most significantly it fixes the incorrect handling of temperatures below 0C.  The device initialization was cleaned up a bit based on the data sheet (seems to work well for me).  Finally I added a method that allows for reading the temperature and humidity in a single call.