[SSHD-283] Support key re-exchange

Make main message handler common between ServerSession and ClientSessionImpl.
Replace the Session#state with an internal kex state variable and send events on SessionListener instead.
Minor javadoc fix
[SSHD-284] Do not use an enum for SSH commands to avoid clashes