Changed _wrap_api to use introspection for PyUSB API changes

The _wrap_api function is supposed to change certain calls depending on changes made to the PyUSB API.  However, the existing method is fragile - it does not work with older PyUSB versions (before version_info was added), and it may fail with newer versions (after version_info is changed beyond "b1").  This new version is more direct - it checks if the PyUSB calls take an "interface" parameter, and give them the parameter if and only if it is needed.