Decorate middleware with metadata for inspection

- Add supplied patterns so that wrapped middlewares can be inspected
for their constraints
Add helper to swallow errors in async calls

- Logs out an error and calls the supplied callback with no arguments.