This should improve the error messages generated providing a bit more
information when the failures are printed out. One example of a
contrived error looks like:
Expected: (Buffers.getBuffer(Buf)) != (std::error_code()), actual: system:0 vs system:0
Because we're using error codes, the default printing gets us more
useful information in case of failure.
This is a follow-up on D26232.