sparts.timer: Add a module with some timing helpers.

I've seen a common pattern that involves a timer that implements the
context manager protocol and provides timing information.  I'd like to
use this for tracking samples in `VTask`s, `ExecuteContext`s, and in
other places without defining the same sets of variables over and over.

New unittests pass