Changed interface, using functions from pHash (CImg instead of opencv)

Hi Bharanee,

I've started by changing interface to easily cache fingerprints.
Then added rotated fingerprints (so images rotated in whatever way can still be found similar).
Then I've realized that opencv fingerprint implementation gives too many false positives — completely different images with 0 or very small distance.
So I've grabbed two functions from pHash library, fixed them (there was a bug with RGBA and problem caused by using nearest neighbor when resampling) and adapted to also create rotated fingerprints when needed.
Hope I did right thing with license.

Cheers,
Ivan