Fix minimum ping interval handling

This pull request fixes the ping rate detection logic, changes the type of `Worker.pingInt` to `time.Duration`, and ensures that `Worker.lastPing` is updated on each `Worker.Ping()` call.

@bbangert r?