[Fix #465] projectile--project-root should not affect project switching
Check if user wants cache first
Remove dead code
Better caching of projectile-project-root
Merge pull request #444 from Silex/master

Improve TRAMP performance
helm-projectile.el: rewrite `helm-projectile-define-key' to allow defining multiple keys

Rewrite `helm-projectile-define-key' to allow defining multiple keys. Then use
the enhanced macro to cleanup the code where `helm-projectile-define-key' are
being called repeatedly while defining multiple key bindings.

To illustrate, previously we have to write:

(helm-projectile-define-key KEYMAP KEY1 DEF1)
(helm-projectile-define-key KEYMAP KEY2 DEF2)
(helm-projectile-define-key KEYMAP KEY3 DEF3)

Now, we can clean it up to:

(helm-projectile-define-key KEYMAP
  KEY1 DEF1
  KEY2 DEF2
  KEY3 DEF3)
Fix helm-projectile-vc

Currently we cannot switch to a project using vc-dir or magit-status
because helm-projectile-vc cannot pass the selected project directory
into projectile-vc. This fix makes it simpler to switch to VC status
anywhere without depending on project root. helm-projectile needs its
own helm-projectile-vc command.

The change to projectile-project-vc also makes it much faster to switch
project because it does not need to compute project root when explicitly
supplied. Otherwise, there's a brief unnecessary delay.
Merge pull request #470 from YorkZ/helm-switch-project

helm-projectile.el: rewrite `helm-projectile-define-key' to allow defini...
Merge pull request #468 from tuhdo/helm-projectile-vc

Fix helm-projectile-vc
Add file listing for sub-projects to Projectile

Add the ability for Projectile to automatically see sub-projects in a
project like Git submodule. It can handle cycle submodules (submodules
that can include itself as submodules and create a loop). The scenario
is described in details in function projectile-get-all-sub-projects.
Merge pull request #464 from tuhdo/master

Add file listing for sub-projects to Projectile
Update documentation

- Update README and ChangeLog and projectile-git-submodule-command
docstring.
Minor fix for retrieving submodules files

Use file-name-as-directory to convert a file to a directory, since it
is portable. The current implementation only works in Linux, as that's
exactly what file-name-as-directory does when it's in Linux.
Merge pull request #471 from tuhdo/master

Update documentaiton and minor fix for retrieving submodules files
helm-projectile.el (helm-projectile-define-key): performance optimization

Because "list" in Emacs Lisp is singly-linked list, frequently adding to the end
of a list using `add-to-list' can be slow. For this reason, it's better to add
to the front of a list, and just do a one-time reverse after adding all the
items.
Add action to delete projects from helm-projectile-switch-project

It's annoying to delete projects one by one. This action is added to
solve that problem.
Basic support of Rust’s Cargo projects
Merge pull request #476 from vhbit/rust-cargo

Basic support of Rust’s Cargo projects
Merge pull request #475 from tuhdo/master

Add action to delete projects from helm-projectile-switch-project
Add helm-projectile-find-file-in-known-projects

Also refactor projectile-find-file-in-known-projects and separate code
that returns files in all projects into a function for reusability.