Fix expire timestamp getting out of control for long running locks

Touching a lock that has been held for a long time causes the expire timestamp to jump too far into the future.

Adding an expire parameter to the touch method fixes this, allowing long running locks to still expire as expected.