Add Result<Success, Error> type.

Result<Success, Error> is a tagged union that represents the success or
failure of an operation, along with either the success value or error
details.

Bug: 679313
Change-Id: Ic815cf1af0ad7f283460494db241b03957546f6b
Reviewed-on: https://chromium-review.googlesource.com/c/1393668
Commit-Queue: Erik Jensen <rkjnsn@chromium.org>
Reviewed-by: Lambros Lambrou <lambroslambrou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623778}
3 files changed