Unify all request failures under a single context-aware exception; ad test cases (issue #19)