Add a 5th argument for expire time (redis EXPIRE)
Add check-add command: atomic check+add
Add layer-check-add: atomic layered check+add
Fix top layer return; use KEYS

Returning "0" when someone's already in the top layer is misleading,
it's better to just return the top layer index.

Also: Access the base key argument as KEYS not ARGV.
f layer-check-add
Add composer.json