Add new command "projectile-find-other-file"

This command is used for switching between files with the same name but
with different extensions in the current project. It would be useful for
switching between header files and source files in C/C++, an possibly
test files with the same names.
Merge pull request #421 from tuhdo/master

Add new command "projectile-find-other-file"
[Fix #412] Handle multiple possible targets in projectile-toggle-between-implementation-or-test
Handle Objective-C extensions in projectile-find-other-file
Add nil extension handler and vice versa

When a file has no extension, still searches for files of the same names
with predefined extensions. It handles cases like Gemfile <->
Gemfile.lock.
Merge pull request #422 from tuhdo/master

Add nil extension handler
README.md: mention helm interface for "Open project root in vc-dir or magit"
Merge pull request #423 from YorkZ/helm-switch-project

Mention helm interface for "Open project root in vc-dir or magit"
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.
Merge pull request #424 from tuhdo/master

Fix bug and improve projectile-find-other-file
Refactor code for writing test

Remove interactivity in projectile-get-other-files. The function now
only returns candidates based on input. It is now a pure function that
accepts the same input and return the same output.
Add another example for projectile-find-other-files

So that people may not misunderstand that it is merely used for
switching C/C++ files.
Fix inaccurate matching and improve matching behavior

For more precise result, we need an exact match of extension. If
extension list contain extensions that are substrings of other
extensions not in the list, wrong candidates are pulled into the result
list. For example. consider the case .c <-> .h. Because .h is part of
.hpp, other files with .hpp are also returned. This is fixed with $
sign - the end of line regexp.

When switching from Gemfile.lock to Gemfile, the extension of other
files are empty. Currently, empty extensions got a dot "." added to the
end of other file candidates, leads to nil result.

This change also makes matching stricter. Now other files got matched
with their exact names, not adding anything before or after. For
example, getting other files for "fpu.h" should return "fpu.c", and a list
of "fpu.c" if more than one exists. The current matching is that, it gets
the string "fpu" from "fpu.h" and find any filewith "fpu.c" in it, for
example files such as "fpu_nofpu.c", "fpu.c"... essentially anything
with "fpu.c" as suffix.

IGNORE-EXTENSIONS is now renamed as FLEX-MATCHING. That is, it matches
other files with different predefined extensions in the alist, AND
contains the filename as part of its name. For example, if I use
FLEX-MATCHING with "fpu.c", then the command returns files like
"fpu_emulator.h" or "kvm_fpu.h". This time, extensions are accounted for
other files: no .c file with "fpu" in its name is returned.
Add more extensions for .h, since it is used in many languages
Add a test case for projectile-get-other-files

Add a test case to demonstrate the usage of projectile-find-other-files
commands and is used for regression testing.
Merge pull request #426 from tuhdo/master

Refactor code and add a test case
Add Helm action for incremental grep in selected projects

Add a new Helm action (bound to "C-s") to do incremental grep in the selected
projects. To use it, press "C-c ph" to fire `helm-projectile', select your
project (press "C-SPC" to select multiple projects), type "C-s" (or "C-u C-s"
for recursive grep), and then type your regexp. As you type the regexp in the
mini buffer, the live grep results will be displayed incrementally.