Fix minimum ping interval handling

* Change the type of `Worker.pingInt` to `time.Duration`.
* Fix the ping rate detection logic.
* Ensure that `Worker.lastPing` is updated on each `Worker.Ping()` call.

@bbangert r?