Added catchHttp for catching HttpExceptions thrown by IO actions.

Fetch.ErrorHandling now has two catching functions: catchIO and
catchHttp.

Both take an IO action and lift it into ErrorIO (=ExceptT NetworkError
IO), but whereas catchIO rethrows IOExceptions in ExceptT, catchHttp
catches and rethrows HttpExceptions.

This closes #17.