Arcyd: handle branches with only empty commits

In the event that we encounter a branch comprised only of empty commits
then we will generate an empty diff, which Phabricator will reject.

Catch this early by checking for an empty diff and raising an
AbdUserException so that a failed review page will be generated.

Add a new 'test_emptyCommit' to exercise the creation case.

Test Plan: $ ./precommit.sh
Arcyd: fix to prune before fetching

Avoid the 'fetch branches conflicting with to-be-pruned branches' bug by
unconditionally pruning before fetching.

This will hit the remote repository twice, later we can add a robust
fetching routine which will only prune on error and use that.

Test Plan: testbed/arcyd/ $ ./run_arcyd_multi.sh
Arcyon: doc update-revision diff requirements

State explicitly in help text the expectation that Phabricator has for
update diffs - that they should be from the original 'base revision'.