Add FeatureDetector caching.
Adjust key used to cache FeatureDetectors.

Considering the name is only unique to the haar file used and not
the arguments (such as the scale factor or minimum neighbours),
we should be storing the combination based on a different key.
Remove supurfluous methods.
Chain exceptions for FeatureNotFoundException on cache hits.

Clients can now retreive the original exception that caused the
new exception as follows

```
try:
    detector.detect(image)
except FeatureNotFoundException as exception:
    print exception    # message contains information about cause too.
    if exception.cause is not None:
        print exception.cause
```
Call parent constructor in FeatureNotFoundException.
Merge pull request #40 from GNOME-MouseTrap/detectcache

Add FeatureDetector caching.