Rewrite parts of projectile.el that are using cl-lib

Using `read-char-choice` instead of `read-char` simplified
`projectile-commander` a bit.
Merge pull request #562 from fbergroth/remove-cl

Rewrite parts of projectile.el that are using cl-lib
Autoload all user-facing functions, fixes #469
Merge pull request #567 from PythonNut/master

Autoload all user-facing functions, see #469
Update the contribution guidelines
projectile-get-all-sub-projects: remove unused KNOWN-PROJECTS arg

Also remove most of its doc-string, because the claims it makes are
either untrue or if they are true the code does not actually do anything
about it.  If the latter is the case, then the doc-string should at
least not claim that the issue is being addressed.
Use magit-status-internal instead of magit-status

In the development version `magit-status' is now only intended for
interactive use.  The stable version provides a forward compatibility
definition of `magit-status-internal'.
Merge pull request #568 from tarsius/silentio

Quiet byte compiler
Make sure vc-git-grep is defined before using it
projectile-grep: reduce lines to a civilized length
Merge pull request #569 from tarsius/silentio

Quiet byte compiler some more
Use find-file-noselect on filename found in project
Merge pull request #565 from apiology/compilation-find-file-fix

Compilation find file fix
Quiet byte-compiler
Merge pull request #572 from tarsius/silentio

Quiet byte compiler yet once more