Ping timer now resets on publish, subscribe, and unsubscribe messages.

Ping timer now resets on publish, subscribe, and unsubscribe messages.
Added 3 unit tests and fixed unit test on pingreq resetting timer to have an interval longer than 5/4 * keepalive