SSHD-253 Improve performance on ServerSession auth and idle timeout checks.

Refactoring of the way ServerSession checks for auth and idle timeouts. The
original version was creating, scheduling and unscheduling many Runnable
instances while the ServerSession is active. This refactored version creates an
'idle ping' Runnable that checks each of the currently running ServerSessions
for timeouts. This check is run once every second.