Error Handling for Publish

Add some extended error handling to the Publish method.  Catches all
exceptions (not just TimeoutException), and raises Event on Service to
calling code can catch the errors for logging/debugging (in a central
location, so try/catches don't have to be scattered everywhere Publish
is called, and subsequent servers can be published to within the Publish
method itself).  The Nvent to be published is also included in the
EventArgs (along with the Exception and a string of the destination, for
logging/debugging purposes), so could be re-Published if desired.
Handle CommunicationObjectFaulted in GetServers

I'm getting this exception in some cases when attempting to open the
connection, and the Faulted event handler doesn't seem to be raised, so
handling the exception here so application using Nvents doesn't crash.
Catch and publish all exceptions when opening connection on publish

Ran into a TimeoutException also - decided to just catch all exceptions
and raise the error event.
Merge pull request #4 from Turntwo/master

Error Handling