Fix lwt interface

This fixes the issue where errors in the lwt http client where swallowed by the option type. Use Lwt.Fail as canonical in lwt. 

@avsm the `unify_body` branch will come soon enough after I rebase on top of this...