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

This is full of spiders, which github lacks emoji for. :-(

I don't like the middleware sandwich plan much, but I don't see any other way to deal with non-reply outbound messages. Even with a middleware sandwich, we won't have as much information as the transport potentially has on inbound message.