This was part of issue 575, but we've split disjoint updates
into this new issue.
The basic plan is to do all updates by running dir_deltas
between *two* svn transactions on the server. In a
vanilla update, the second txn will just be a tiny stub
representing HEAD. In a switched update, the second txn will
have all sorts of wonky paths@revs spliced into it so that it
reflects the working copy's url structure, but with nodes at
HEAD (or whatever the target rev is) instead of at the base
revisions.
This implies a new ra callback for the state reporting
mechanism, so the reporter can tell the server what to
hang where in that txn.