v0.3.0 — error mapping layer

New public API:
  - SetErrorMap(map[error]error) — replace the global translation map
  - MapError(from, to error)     — add/overwrite a single mapping
  - ClearErrorMap()              — wipe the map (mostly for tests)

Wrap/Wrapf translate the underlying error via errors.Is before wrapping.
Backwards compatible: empty map = unchanged behavior.