Fix for issue No 24

Fix for issue No 24
The root issue is that NUnitEventListener is a MarshalByRefObject. This means it has a default lifetime lease of 5 minutes, with an extension of 2 minutes every time it receives a callback.
http://msdn.microsoft.com/en-us/magazine/cc300474.aspx#edupdate
Changes:
1. Give NUnitEventListener an infinite lifetime lease
2. Implement IDisposable, and call RemotingServices.Disconnect to prevent memory leaks

I have verified under WinDBG/SOS that when running tests from multiple assemblies, there is only 1 NUnitEventListener on the heap with parents. Without calling RemotingServices.Disconnect, there is an NUnitEventListener for each test assembly. (This is also the case with the current code, until the lifetime lease expires).

The IssueNo24Tests included in the pull request can be excluded from runs with -Trait:"LongRunning". Or I could exclude them from the pull request once the fix has been verified, and just rely on the Listener_LeaseLifetimeWillNotExpire test for coverage.

This is my first GitHub pull request/contribution, so if I have missed something in the workflow, please let me know.
This was intentional to demonstrate a 2nd problem we were seeing. The original issue report didn't mention that any tests that would be run after the long-running test fails to complete are also skipped.  If you run all tests in this assembly without the fix, Quick and Slow will both complete, but Slower and TooLateButFast will both appear as dimmed out after the listener's lease expires.
However, I wasn't sure you would want me to add these tests given the necessary duration. Would you prefer I just add the Listener_LeaseLifetimeWillNotExpire test for coverage?