API: admin users can sudo commands as other users

-Specifying a header of SUDO or adding a :sudo with either user id, or username of the user will set the current_user to be that user if your identifying private_token/PRIVATE_TOKEN is an administrator token

-I'll remove my previous PR (https://github.com/gitlabhq/gitlabhq/pull/3260) as this does it and is more generally useful