Implements SETNXEX

This commit introduces the SETNXEX command. Since SETNX is typically
used as a lock, it is nice to be able to specify the expiry of the lock
at the time of creation. The key and ttl should not be reset if the key
exists.

Signed-off-by: Aaron Bedra <aaron@aaronbedra.com>