More refactoring

- File-handling operations are now methods of CameraFile
- Radically simplify CameraFile iteration code
- File information is now lazy-loaded
- Switch to unicode literals from __future__, bytestrings are now marked
  as such
Remove async option from capture method
Return UsbDevice list from list_cameras function

A dictionary with the name as key was less than ideal, since a lot of
devices have identical names. Hence the introduction of a new namedtuple
type that holds the device name as well as the bus and device number.
Fix initialization of Camera from bus/device number
Free underlying Camera C object in Camera destructor
Weirdest workaround ever for performance issues related to logging
Document reason for multiple contexts
Add docstrings