Add effectful "pattern match" to sum_type.

Regular sum_type::match always returns a value, which was found to be
inconvenient for certain use cases. Thus, matchE with return type of
void, for matching on sum types with the sole purpose of performing
something effectful.