allow all git-upload-* commands for deploy keys

This allows performing a `git archive` command using a deploy key (see http://feedback.gitlab.com/forums/176466-general/suggestions/3712377-easier-deploy-with-deploy-key). Tests included.
Please can you refer to current code please? This code is nearly a year old and things might have changed.