Improved API: error handlers can return a shelf.Response or Future<shelf.Response>; fixes.