memory: reduce statistics TLS initialization even more
memory: reduce statistics TLS initialization even more

In 4506b8784a ("Merge "memory: optimize thread-local
initialization" from Avi") we reduced calls to thread-local
guards, but it turns out the work was incomplete. The culprit
is that in

    thread_local stats_array stats;

`stats_array` is an std::array, and std::array's default
constructor is not constexpr, since the underlying type
(uint64_t) default constructor is not constexpr.

Fix by providing an initializer, which does make it
constexpr. For good measure throw in `static`, which
often helps the optimizer, and make it constinit when
available, which forces the optimization (or errors out).

Benchmark results from Scylla's perf_simple_query:

before: 208395.11 tps ( 81.1 allocs/op,  15.1 tasks/op,   48770 insns/op)
after:  219814.11 tps ( 81.1 allocs/op,  15.1 tasks/op,   46199 insns/op)

More than 5% reduction in instructions executed, and corresponding
improvement in tps.
Message-Id: <285468dc58576483a9e595ca86d47c3d2196ab0a@scylladb.com>

avikivity/seastar,cloudius-systems/seastar,cloudius-systems/seastar,scylladb/seastar,avikivity/seastar,avikivity/seastar,cloudius-systems/seastar,scylladb/seastar,syuu1228/seastar,syuu1228/seastar,scylladb/seastar,syuu1228/seastar