hgweb: protocol functions take repo instead of web
This makes it much easier for implementers of hgweb alternatives to simply
call into protocol functions after setting up a repo and a request.
hg init test
cd test
echo foo > a
hg ci -Ama
hg up -r0000
echo bar > a
echo % should issue warning
hg ci -Amb
hg up -r0000
echo stuffy > a
echo % should not issue warning
hg ci -q -Amc
hg up -r0000
echo crap > a
hg branch testing
echo % should not issue warning
hg ci -q -Amd