Make get_embedded_health not cash on iLO 3+

The info it returns is incomplete, but at least better than crashing. A
proper fix will come after finishing the test suite.
Fix a few bugs found in testing
Python 2.4 compat and small test fixes
Close sockets when we're done with them
Get more tests in place
Docs and test love
Hey, it's 2013 :)
Make get_embedded_health more useful for ilo3/4

get_embedded_health returns a lot more data in newer iLO versions. To
support this, _element_children_to_dict can now call per-element
functions to parse special data like this.
Version 2.1