fixed requirements in mem. funs of message
allow types providing operator bool in REQUIRE
refined `detail::valid_input_predicate`

this patch allows typed_behavior to handle multiple message handlers
using the same input types but different output types;
however, sync_send(...).{then|await} are not ready for multiple
result types yet