Fixed session hanging on remote disconnect
Moved disconnected check to OnConnectionClose
Wrap reader with using block
Dispose of commands
Dispose of commands in override
Implemented IDisposable

Dispose of the bindings in the dispose code.
Dispose of components when disposing
Wrap disposable objects in using block
Fixed double dispose