Add age method; Add debug logging; improve locking

 * simplify age method
 * use redis multi
 * add debug logging
 * use setex
 * Move key locking directly in to the do method. For reasons I don't understand
   right now, running setnx etc from another method escapes the WATCH.