Updated the KeepAlive configuration option to be nullable.

Before a zero length timespan disabled keep-alives, but now null is used for this purpose.
Now we prevent configuring the DisconnectTimeout after configuring the KeepAlive.
The DisconnectTimeout can no longer be set to zero.
Updated test settings to work with the IConfigurationManger changes