Avoid NullReferenceException when environment variable not set.

Fixes issue #299.
Shows exception discarded with Error(msg, ex)
Redirects Error(msg, ex) to ErrorException()
Dispose of dequeued SocketAsyncEventArgs
fixes #314
Fix argument null exceptions when GetCandidateFileNames() is called while running in a Unity3D application.
Merge pull request #321 from mattyway/fix-issue-320

Avoid NullArgumentException when running in a Unity3D application
Merge pull request #305 from arangas/log-error-with-exception

Redirects Logger.Log(a, b, ex) to Logger.LogException(a, b, ex)
Merge pull request #300 from bkryl/missing-environment-variable-exception

Avoid NullReferenceException when environment variable not set.
Merge pull request #315 from gcschorer/314_DisposeDequeuedSocketArgs

Dispose of dequeued SocketAsyncEventArgs