Added Keep Alive Feature for .NET client and tests

Added Keep Alive Feature for .NET client and tests
- Added the Keep Alive class for storing timeout values
- Added HeartbeatMonitor to fire timeouts and timeout warnings
- Added Timeout and Timeout Warning events to Connection
- Added unit and functional tests