Convert a few methods to use ErrorOr.

It used to be inconvenient to mix ErrorOr and UniquePtr, but with c++11
they work OK together.