Fix forced update of tracked branch

In 820e5d14 ("Add support for githook customization") the function
deleteBranch() in index.py got an extra positional parameter.  The
call to it from updateBranch() in the case of a forced (non-ff)
update of a tracked branch was not adjusted to pass an extra
argument, so that call then crashed instead.
Fix crash when recreating tracked branch

When a tracked branch (with the 'force' flag set) is updated in a
non-ff fashion, it is internally first deleted and then recreated
(as if it was first deleted via 'git push <remote> :<name>' and
then pushed normally.)  The recreation part was broken, calling the
function createBranch() with user=None.

Fix by calling createBranches() instead, with a user name argument.
The function createBranches() is a thin wrapper (in the case of
creating a single branch) which handles the user name => user
conversion.
Fix cleanup code in 024-customizations.githook.py

First of all, githook.py was deleted from the checkout from which Critic
was installed, not from /etc/critic/main/customization where it was
installed.  Second, githook.pyc needs to be deleted as well, or Python
will still manage to import the module.
Suppress "user-friendly" hook output for pushes by the system

This was already done when creating a branch.  Deleting a branch however
still output the "Deleted branch containing N commits." line.  This was
particularly unfortunate when the push was actually a non-ff update of a
forced tracked branch, since it was the only output, but the branch was
only temporary (and internally) deleted.

Instead, fix the output of more meaningful (for the logs) output in the
specific case of non-ff updates of tracked branches.  This was returned
from the updateBranch() method, but its return value was ignored by the
caller.  The correct way to produce output here is by writing it to the
stdout stream (sys.stdout is "redirected" and picked up by the caller.)
Add test for non-ff updates of tracked branches

Tests that a non-forced tracked branch stops tracking if the
source branch is rebased, and that a forced tracked branch
doesn't.

Also extend the /addtrackedbranch operation to take a 'forced'
parameter, and to return the added tracked branch's id.

Also make sure receive.deny{Deletes,NonFastforwards} are not
enabled in the main repository clone used for testing.  They
are not in Git's normal default settings, but this might be
overridden on the system running the tests.
Improve failed check location reporting

Instead of just reporting the location (file:line) of the call to
testing.expect.check() that failed, report all locations on the stack
that are under testing/tests/ (typically they will all be in the TC
script, if there are more than one such line.)

This makes it easier to debug tests that call check() in utility
functions, in turned called from multiple locations in the test script.