tree e37430adf40e05510fda46e32f9b33f0e5a124d6
parent b7033faf34a680cb87664975b0fb707901fa1fc7
author Christopher Collins <ccollins@apache.org> 1561064735 -0700
committer Christopher Collins <ccollins@apache.org> 1561138014 -0700

Add "errors" package

This is a thin wrapper over the `pkg/errors` package.  It decorates the
base package with the following functionality:

1. Wrap and Wrapf produce an error with exactly one stack trace.  If
the wrapped error already contains a stack trace, these functions just
append text to the message.

2. WithStack produces an error with exactly one stack trace.  If the
wrapped error already contains a stack trace, it is returned unmodified.

All of artifact's public APIs return errors produced with this package.
This allows us to remove the dependency on newt (`NewtError`) but still
retain error stack traces.
