various enhancements

- artifact middleware that made it through PR but shouldn’t have
- also added a middleware for attaching the syscoin client to req
- compartmentalized logger initialization
- error handling mdw, errors lib, and error attachment mdw
  - errors can be accessed via req.error.ErrorName([message])
  - message is an optional override on the default error message
  - adding new error types is as simple as adding to the errors object