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