Configurable message length limit for HTTP API

We currently accept all (valid) outbound messages in the HTTP API. Ideally, we'd like to reject messages that can't be sent for some reason. Since we don't (currently) have any way to get capability information from channels, the easiest thing to do here is add conversation config, starting with the length limit.
I think it would be cleaner if the content length limit was passed in explicitly here, otherwise we're passing the config around everywhere and it gets hard to isolate things and track which bits of the config are used where.