[Fix #542] Ignore all errors when getting files in sub-projects

To ensure projectile-current-project-files is still functional, we
should just consider getting sub-project files optional bonus. If
Projectile fails to get any sub-project files, just ignore it.
Merge pull request #543 from tuhdo/ignore-all-errors-sub-projects

[Fix #542] Ignore all errors when getting files in sub-projects
Work with git submodules in nested folder structure.
Merge known-project lists from multiple processes
Merge pull request #515 from thomasf/issue/bbatosv/506-known-projects-merge

Merge known-project lists from multiple processes
Update comment
Use idiomatic method to build Helm source

If we want to populate candidates in a Helm buffer, we use the function
helm-build-in-buffer-source, instead of manually inserting candidates.
[Fix #551] Replace -copy with copy-sequence
Merge pull request #552 from tuhdo/master

Update comment and use idiomatic method to build Helm source
Merge pull request #550 from no0/git-submodule-not-at-root-of-repo

Work with git submodules in nested folder structure.
Update helm-source-projectile-dired-files-list and fix bugs

Use idiomatic way to build helm-source-projectile-dired-files-list and
add new features: from now on the entries listed in the source will
share the same faces with helm-find-files, include normal file, links,
directory and executable.

Now the Dired buffer listing in helm-source-projectile-dired-files-list
also contains full action listing as in helm-projectile-find-file.

Also fix bugs in add and delete actions of helm-source-projectile-dired-files-list:

- Currently, if an existing file/directory has the same name as the new
  name a user entered, then Dired will use that directory instead of
  creating a new Dired buffer and only allows inserting existing
  files/directories into the new Dired buffer. If a non-existing
  file/directory is inserted, Dired will signal an error and creating a
  new Dired buffer (as a result of adding more entries/deleting old
  entries) failed. We must create a temporary name of current Dired
  buffer name that is non-existent, so we can insert anything we want
  without error, and rename to the original name used entered later.
Update helm-source-directories-list

Use idiomatic way to build this source.
Update helm-source-projectile-projects

Use idiomatic way to build this source and add fuzzy-matching for this
source.
Update helm-source-projectile-files-dwim-list

Use idiomatic way to build this source.
Disable virtual Dired manager on remote host by default

For performance reason, retrieving entries in current remote Dired
buffer may take considerably amount of time. So, it's better to disable
this feature on remote host by default, and leave the decision to user
whether to activate it or not.
Update helm-source-projectile-files-in-all-projects-list

Use idiomatic way to build this source.
Update helm-source-projectile-recentf-list

Use idiomatic way to build this source.
Update helm-source-projectile-buffers-list

Use idiomatic way to build helm-source-projectile-buffers-list. For this
source, we need to create our own specialized helm-source-projectile-buffer
class that combines both attributes in helm-source-sync and
helm-type-buffer classes to make Helm displays this source using its
buffer UI.
Update command helm-projectile-find-other-file

Use idiomatic way to build source for this command. Also we finally
remove the function helm-projectile-init-buffer-with-files (used for
manually "manully" insert candidates into buffer) as it is not needed
anymore.
Merge pull request #553 from tuhdo/master

Update helm-source-projectile-dired-files-list and fix bugs; update other sources