Deal with some Py2.7 coverage misses which only show up without .coverage

(Delete .coverage as a matter of course and adjust the version pragmas)
Address all branch coverage failures. Coverage now reports 100% on Py2.7

- Add two unit tests for reachable but untested branches
- Mark unreachable branches with pragmas
- Fix an endless loop in a "this should never happen" error handler