database: detect misconfigured unit tests that don't set available_memory
database: detect misconfigured unit tests that don't set available_memory

available_memory is used to seed many caches and controllers. Usually
it's detected from the environment, but unit tests configure it
on their own with fake values. If they forget, then the undefined
behavior sanitizer will kick in in random places (see 8aa842614a11
("test: gossip_test: configure database memory allocation correctly")
for an example.

Prevent this early by asserting that available_memory is nonzero.

Closes #7612

scylladb/scylla,scylladb/scylla,scylladb/scylla,scylladb/scylla