Cache the file name relative to the root path.

Otherwise the file will be cached twice.
Allow to specify custom completion system function.
Add doc on how to use custom completion function.
Merge pull request #135 from rejeep/custom-hashifying

Custom hashifying