TODO list of new features:

* Cleanup the code for closing the device
* Add public api to get a list of all available devices.
* Progressive final scan: scan can provide huge image especially in 16 bits color depth.
Send image data to host application by block, not the whole image at once.
