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