Custom hashifying

Hi,

I read about the decision to remove hashifying in https://github.com/bbatsov/projectile/issues/108. It has been bugging me for quite some time that it was removed from projectile. Without hashifying, projectile's find file functionality is almost useless to me.

This pull request contains two commits:

* https://github.com/rejeep/projectile/commit/92de619c38f8a783c1f47947fe7b190c72f61251 - Caching bug
* https://github.com/rejeep/projectile/commit/99d9e6e89563a86aee54ffb41f785367a3e3c9da - Allow to specify custom completion function

The second commit allows you to specify whatever completion function you want. Since I really don't want files relative to the root, but rather just the file name, I created [this function](https://gist.github.com/rejeep/5933343). I'm not sure if you want this function as a part of projectile, if you do, tell me and I'll add it. Otherwise people that find it useful can simply add it to their Emacs config.

Note that I just created this hence has not been tested that well.