Remove diff.py which has never been used or useful
Drop unused function (reviewing.utils.checkCommitChain)
Clean-up and improve various error handling

Mostly replacing "raise Exception" with either proper reporting
code in cases where invalid input is the cause and with
"raise base.ImplementationError" (or a sub-class thereof) in cases
where the cause is (believed to be) an error in Critic (that the
end-user has no real benefit knowing the details of.)