Sesssion: initial rough port of 3.1 plugin

Exposes plugin keepalive and inactivity checks via the
`keepalive.wb-session-timeout` and `inactivity.wb-session-timeout`
events.
Merge pull request #3166 from patheard/session-timeout

Sesssion Timeout: initial rough port of 3.1 plugin