Improve performance of projectile-find-other-file

Currently, the command searches for files in filelist
using (projectile-current-project-files) for every file. It would be
slow as the number of handlers increases. This change narrows project
files to those that only contains the filename, then perform searches on
narrowed set.

Change filter to -filter

filter should be -filter or error occurs.
Add optional argument to ignore extensions

If optional argument is supplied, project-find-other-file ignores
extension matching and just returns other files that contain current
filename as part of its name. For example, Foo.java -> FooTest.java.

Conflicts:
	projectile.el
Add more handlers

- For C/C++: .cc <--> .hh
- For GLSL: .vert <--> .frag
- Add comments
Make projectile-other-file-alist consistent

The other file extensions require a "." at the beginning. To make it
consistent and easier for future addition to the alist, remove the "."
and concat it in the filename expansion for other files in
projectile-get-other-file.