Fix bug and improve projectile-find-other-file

Changes:

- Currently, the command searches for files in `filelist` variable using `(projectile-current-project-files)` for **every** file. It would be slow as the number of handlers increases and the project is large with many files. This change narrows to search files  that only contains the filename of current buffer, then perform searches on narrowed set.

- For even further flexible matching, additional argument will enable searching with only filename; extension is not used.

- There's a bug, that is, function `filter` should be `-filter`. `filter` is an aliased function in my environment.

- Add more handlers for C/C++ and GLSL.