Add support for GruntJS. Commands for deployment and releasing projects.

Fixes:

Added 'vc-git' dependency - silences warnings on byte-compile.
Small fixes suggested by flycheck in few function documentation strings.
Rearranged keybindings declarations alphabetically. It's easier to read/maintain.

New features:
Added support for Grunt, Bower, npm, Composer project types.
Added menu entries and commands to run 'deploy' and 'release' commands on some known project types: Grunt, Maven.

I removed 'arg' option from 'projectile-release-project' but added optional 'root-dir'.

I'm not sure if compile/deploy/release commands should allow any user interaction. This is why I removed 'arg' option from release command.

'root-dir' option allows to override default-directory and with this setting it's possible to run 'projectile-release-project' remotely with path set as argument. 

TODO:
Remove all this hardcoded and duplicated stuff related to project compilation/deployment etc.
Parse make, pom.xml, Gruntfile.js and other files and get list of available targets dynamically.
Make project-types extensible and customizable.
Integrate Projectile with org-mode, org-sync and github issues.