Easy interactive

This change-set is intended to facilitate using pyusb in 'interactive' mode.  It is a 'squashed' version of a previous pull request.  There are two commits: the first includes all functional changes and the second doesn't change anything functionally although improves legibility of comments etc from a terminal.  All __future__ imports have been removed so it should work in all python versions.  Also, __str__ special methods have been added for for printing usb descriptors.