Add sensors backend functionality

This patchset adds the backend functionality to retrieve sensor
information and hard drive temperatures.

v1:
- Didn't yet deal with buggy sensors command
    (e.g. converting non-value 0's to 32F)

v2:
- Now doing conversions to F in ginger, as
    opposed to passing the -f flag to sensors
- Reordered import statements to be alphabetical
    and fixed others in the process
- Changed to using an OrderedDict to return items
    so that the UI could more quickly parse the
    sensors (since this will be polled frequently).
- Added a "fallback" max temperature when '0' was
    returned as the max for a temp. That way the UI
    will not have to figure that out, and not break
    if a dial-type dashboard widget is created based
    on these values. The fallback max is 100 C.
- Added an update method for configuring the temp
    output. Now a user can set 'F' or 'C'.
- Added API documentation

v3:
- Moved try/catch logic into parse for loops
- Added function bullet in README
- Updated ginger spec file

v4:
- Added a 'unit' value to ginger.conf to use instead
    of UPDATE, so that the unit doesn't change frequently.
- Removed UPDATE
- Restructured the lookup() call to make it more readable.
    - Added explanations and examples
    - Moved the conversion logic outside of parsing.

v5:
- Remove 'PUT' from admin methods.

v6:
- Replace dicts of dicts with dict of list of sensors
- Improvements in convert_units() logic
- Remove update params in sensor control
    Thanks to Zhou Zheng Sheng for the suggestions.

v7:
- pep8 tweaks
- Include 'unit' in each device instead of having
    only a global temperature unit.
- Have the sensors model inherit from object.

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>