Add support for personal mob.user branches
Actually these refs are stored under '^refs/mob/mob.$user$' and
'^refs/mob/mob_$user/.+$' which means each personal mob user may
use a single ref of the form 'refs/mob/mob.$user' and multiple
refs starting with a 'refs/mob/mob_$user/' prefix.
Personal mob branches are activated simply by adding push
permissions for the mob user to the project. No initial branch
needs to be pushed (unlike the global 'refs/heads/mob' branch).
These personal mob branches are intended to be mostly invisible to
avoid cluttering up a project with lots of additional branch names
from users without push permission for the project and forcing
everyone to clone them. This is why they are stored under
'refs/mob/' instead of 'refs/heads/mob/'.
Personal mob branches are completely independent of and do not
interact with the single, global 'refs/heads/mob' branch in any
way.
To facilitate use of these personal mob branches, if they are
enabled (the mob user has push permissions to the project but the
pushing user does not have push permissions to the project), then
'refs/heads/mob*' will automagically map to 'refs/mob/mob*' on a
push making it much simpler to use a personal mob branch.