redo lock maintenance as more general MaintainNode

A full StoreNode is now given, which contains the key, value, and TTL.

Releasing the node is now done by passing a channel into the releaseNode
channel. The channel you give will be closed once the lock is actually
released.

Signed-off-by: Michael Fraenkel <fraenkel@us.ibm.com>
use higher-level .Create in node maintainer

Signed-off-by: Michael Fraenkel <fraenkel@us.ibm.com>