Fix Mono build

Some versions of NLog doesn't support Enum.TryParse.
Using Enum.Parse with try..catch instead, also added internal logging if
the layout couldn't be converted to MailPriority
Add SecuritySafeCritical

To allow MutexMultiProcessFileAppender to be used from partial trusted
callers, it needs to be marked with the SecuritySafeCritical attribute.
fixes #66
Use FileStream as fallback from native method

Currently NLog on a Windows machine uses a unmanaged call to create
filestreams, which allows better stream control, in all other cases it
uses the FileStream class.
When running under medium trust calls to unmanaged code aren't allowed,
which makes NLog thrown an exception, and no log file is created.
To fix this I've added a try..cacth around the unmanaged call, and also
added a check if the current AppDomain is fully trusted. This makes NLog
fallback to the managed wrapper if we aren't running in full trust and if
a SecurityException happens during the unmanaged call.

Partly solves #117 and fixes #67
Removed check for FullTrust

This isn't supported on all the supported below .NET 4, instead rely on
exception handling