Clear CacheItem data between tests if connector supports `deleteAll`. Tests fail with 501 if this check is not used.
Add a core implementation of KVAO.iterateKeys() which returns an AsyncIterator, inspired by - https://github.com/tc39/proposal-async-iteration - https://www.npmjs.com/package/async-iterators This way we can safely iterate even large sets of data. Also add KVAO.keys(), a sugar API converting the result of iterateKeys() into a single array.
Models attached to a KeyValue connector get the following *static* methods: Color.set(key, value); Color.set(key, value, ttl); Color.set(key, value, { ttl: ttl }); Color.get(key); Color.expire(key, ttl);