Major rewrite of USB communication/dependency in ANT

USBDevice is an "interface" thats inherited by USBNode which is specific
for LIBUSB. ANT only calls methods according to the "interface" ->
possible to swap out USB device without any dependency problems in ANT.