api: type-erase map_reduce_cf()
api: type-erase map_reduce_cf()

map_reduce_cf() is called with varying template parameters which each
have to be compiled separately. Unifying the internals to use types based
on std::any reduced the object size by 15% (115MB->99MB) with presumably
a commensurate decrease in compile time.

A version that used "I" instead of "std::any" (and thus merged the
internals only for callers that used the same result type) delivered
a 10% decrease in object size.  While std::any is less safe, in this
case it is completely encapsulated.
Message-Id: <f3a1a99bd3848c5c23364e65393c0b892211e17f@scylladb.com>

duarten/scylla,scylladb/scylla,avikivity/scylla,avikivity/scylla,duarten/scylla,scylladb/scylla,scylladb/scylla,avikivity/scylla,duarten/scylla,scylladb/scylla