sstables: filter sstables single-row read using first_key/last_key
sstables: filter sstables single-row read using first_key/last_key

Using leveled compaction strategy, only a few sstables will contain a
given key, so we need to filter out the rest.  Using the summary entries
to filter keys works if the key is before the first summary entry,
but does not work if it is after the last summary entry, because the last
summary entry does not represent the last key; so sstables that are
are towards the beginning of the ring are read even if they do not contain
the key, greatly reducing read performance.

Fix by consulting the summary's first_key/last_key entries before consulting
the summary entry array.

scylladb/scylla,avikivity/scylla,duarten/scylla,avikivity/scylla,kjniemi/scylla,avikivity/scylla,scylladb/scylla,raphaelsc/scylla,kjniemi/scylla,duarten/scylla,raphaelsc/scylla,raphaelsc/scylla,kjniemi/scylla,scylladb/scylla,duarten/scylla,scylladb/scylla