Introduce Tipi::TypeError:

TypeError decorates errors coming from Finitio to provide more context
about where they occur (resource, method, etc).

Based on a patch by Marcus Ramberg.