Avoid replay attacks by considering message invalid if it's more than an
hour old. New test code updates timestamp and signature. Closes #2.