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.
Ah. Well my question still stands as it archive doesn't take ref in the API but does in the non-API