Make keepAlive time optional

Some clients may do manual ping actions that already keep the connection
alive, or be run in environments where they otherwise know the
keep-alive conditions are different from the default.

Especially on mobile, we want to keep radio usage down, so doing
keep-alive in application logic is likely.