Use carmine to talk to redis

- Replaces clj-redis with the carmine redis client library.

- Removes separate ttl memoize cache. The ttl is now an optional
  constructor parameter.

- Removes the non-delay case, as core.memoize will always use delays.

- Uses the redis NX and EX options to SET instead of performing SET and
  EXPIRE in separate commands (race condition).