tests: fix DateTime.isPast() under pinDateTime
When under a pinDateTime context, d.isPast() was comparing d with the actual current date, not the fake date from the pinned context.
Also, make the methods class methods, so that they can be used as external methods in Zelenium tests.