Allow helm-projectile-ag to ignore

helm-projectile-ag now can also ignore files and directories based on
these variables:

- grep-find-ignored-files
- grep-find-ignored-directories
- projectile-globally-ignored-directories
- projectile-globally-ignored-files
Ignore files properly with helm-projectile-grep

Fix a bug where helm-projectile-grep does not retrieve ignore patterns
from relevant variables correctly. Now the ignored values are included
in the actual command.
Merge pull request #529 from tuhdo/master

[Bug fix] Use correct filter function
Merge pull request #522 from tuhdo/helm-projectile-search

Make helm-projectile-grep ignores files properly and allow helm-projectile-ag to ignore files/directories
don't advice functions defined in the same library
Merge pull request #534 from tarsius/no-advice

don't advice functions defined in the same library
[Fix #530] Change messages for consistency
[Fix #525] Change helm-projectile-sources-list order

- Prioritize file list above any other sources, except buffer since it is
usually small per project.

- Remove recentf list since it is just a subset of file list and if
  anything find-able in the recentf list, it should be inside file list.
  Remove to speed up helm-projectile command. User can invoke this command
  separately if they need a reminder of previously worked files.

- Remove directory listing for speeding up the command as well. Finding
  directory is a less frequent operation, and user can open a Dired
  buffer of the directory of current file anyway. This command has more
  meaning in stock Projectile then in Helm Projectile.

- Move project list to the bottom, since users won't need to switch
  project too frequently.
Merge pull request #533 from tuhdo/usability

[FIX #525 and  #530] Usability
[Fix #537] Explicitly add search path to grep command

In OSX, grep must be supplied with a directory to start the search.
Otherwise, no result is returned.
Merge pull request #539 from tuhdo/helm-projectile-grep-osx

[Fix #537] Explicitly add search path to grep command
Add a timer to initialize command history properly

With a timer, it leaves enough time for loading minibuffer history.

Without a timer, helm-projectile-ack/ag prevents user to quit the
commands with C-g in one try, thus requires multiple C-g pressings. A
timer introduces a brief delay for Emacs to accept user input and fix
multiple C-g pressings issue. This is also the way helm-find-files-grep
does. This is just a speculation, but it fixes the issue.
Fix helm-projectile-ack file ignoring

Currently helm-projectile-ack processes ignored files and directories
the same as projectile-ack. This works for directories, but not work for
ignoring files with wildcard matching. When user adds files with
wildcard, ack will see this not as an argument to it but a search string
and returns no result.

This is fixed by using "--ignore-file=match:" pattern that accepts a
regex that matches files. Also, shell-quote-argument must be used to
properly pass the file patterns with regex in it, otherwise ack also
returns no result.
Merge pull request #531 from tuhdo/master

[FIX] Add timer to allow canceling helm-projectile-grep/ack properly, fix helm-projectile-ack file ignoring
[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.