Use boost::promise and boost::unique_future since there is a bug in the STL
Use put as a custom method (avoid expect: 100-continue + chunked request)