Middleware to set provider field on messages

This needs at least two versions (or one version with at least two modes, although I prefer splitting them):
 - always set the same statically-configured `provider` value
 - select `provider` value based on `from_addr` prefix