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
```