Don't cache device_descriptors(). It's misleading.
Fix two errors with the power of RAII.

Fix:
1. Resource leak of libusb_device list on exception in Bus::device_descriptors.
2. Always throwing exception with 0 as status.
Implement bus_id(), port_id() and parent() methods on DeviceDescriptor.
Add some methods.

* Device::reset()
* DeviceDescriptor::address()
Add Bus::find_by_address().