Cleanup `helm-projectile-file-actions' definition

Previously, `helm-projectile-file-actions' was defined by copying and pasting
the actions defined in `helm-source-ffiles' first, then modifying a few entries
in the copied list. This is boilerplate and not flexible. For example, if a
function name gets changed in Helm, this list will have to be changed
accordingly.

By adding the function `helm-projectile-hack-actions', we are now able to hack
directly on a dynamic copy of the original list in Helm, so that function name
changes in Helm will less likely to break helm-projectile.