add body part search/replace, change bannering to use it

This adds the ability to munge body parts any way you want as they come off the wire.  Basically, you can add a filter function that gets called with the body buffer, and the buffer that function returns is used for the body part down the pipe.  It also reimplements the banner code to use a filter function, so it's not special-cased.

We pushed this out today and it's been running without issue so far.  We'd like to let it burn in for another few days before we can say for sure, but it seems safe and stable so far.