btle: readability improvements, more value reading, py2.7 compatibility

Hi,

your code looks like the best BLE-python interface so far, so I toyed around with it a bit and tried to make the btle output more readable. Feel free to cherry-pick any or all of the patches, or to write inflammatory comments about my bad coding style :)

I am not 100% sure about the short-form UUID patch, as it discards the first four hex-digits, which might or might not be zero in the spec.

**Edit**: Oh right, the AssignedNumbers patch is not adding UUID constants but directly adds things to the map. This is not ideal, but now might be the time to add some more namespacing into the mix to distinguish service and characteristic UUIDs.