build: Turn all the warns back on, re-enable -Werror.
mk_ctags.sh: Add a script for regenerating ctags.
Start committing before fetchers fully quiesce

Don't keep hogging memory until fetching is 100% complete, which sucks
for medium-large repositories.

Also fixes a nasty bug in TAILQ_SPLICE() where last2's tqe_prev pointer
is set to the 1st element of head2.

Here's the longer explanation from the code:
--------------------------------------------

We need to wait for all revs in a given range to have been fetched (i.e.
g_rev_fetchdone) before we start committing (or we could end up having a
hole of missing revisions on this branch). However, fetchers will just
keep throwing more crap on the end of the branch, out of order.

If we waited (as we used to) for the branch to quiesce before committing
anything, continuously active branches (like head/trunk) would never
leave memory until we finished fetching everything from SVN or ran out
of memory and died.

So: now we pick a branch that has some commits, insert a bookmark
'dummy_rev,' wait for fetchers to finish with the logical revision range
up to the mark, cut the branch in half at the bookmark (TAILQ_SPLICE),
and finally return the first half to the caller.