LineEndingMode Changed to Immutable Class

Converted LineEndingMode from enumeration to sealed immutable class
which allows us to group LineEnding and NewLineChars properties in
FileTarget under a single entity.
[Fix] ArchiveFileOnStartTest was failing

ArchiveFileOnStartTest was failing as MaxArchiveFiles the default value
is zero and in the test we accepted the default. When explicitly set the
MaxArchiveFiles = 1 the test completed successfully.
Get[*]Logger() return Logger instead of ILogger

Revert the various method overloads of GetCurrentClassLogger() and
GetLogger in LogFactory class. Now they return a Logger class instance
instead of the ILogger interface. (Reference: Issue "ILogger interface
added" #375)
LogManager class refactored

In LogManager class
* New method GetClassFullName() created from the common code extracted
from GetCurrentClassLogger() and GetCurrentClassLogger(Type) methods.
* Try Catch block moved from LogManager static constructor into
SetupTerminationEvents() method.
* Comments and code reformatted.
Merge pull request #473 from ie-zero/LineEndingMode_ChangedToClass

LineEndingMode Changed to Immutable Class
Merge pull request #478 from ie-zero/ILoggerRevisited

Get[*]Logger() return Logger instead of ILogger
Merge pull request #479 from ie-zero/Refactor_LogManager

LogManager class refactored
Changed Wiki URLs to point at GitHub

The URLs on the XML comments were pointing to old non-existing pages at
http://nlog-project.org/wiki/. Replaced the links and now correctly
point at https://github.com/nlog/nlog/wiki/

Conflicts:
	tests/NLog.UnitTests/Fluent/LogBuilderTests.cs
Add Unit Tests to MemoryTarget class

Conflicts:
	tests/NLog.UnitTests/NLog.UnitTests.mono2.csproj
	tests/NLog.UnitTests/NLog.UnitTests.monodevelop.csproj
	tests/NLog.UnitTests/NLog.UnitTests.netfx35.csproj
	tests/NLog.UnitTests/NLog.UnitTests.netfx40.csproj
	tests/NLog.UnitTests/NLog.UnitTests.netfx45.csproj
	tests/NLog.UnitTests/NLog.UnitTests.sl4.csproj
	tests/NLog.UnitTests/NLog.UnitTests.sl5.csproj
Added Unit Tests for InternalLogger class

The code coverage increased to 88%. The remaining code is in the various
GetSetting() private methods.

Conflicts:
	tests/NLog.UnitTests/Fluent/LogBuilderTests.cs
Unit Tests added for LogManager class

Unit Tests added for LogManager class to cover EnableLogging(),
DisableLogging() and IsLoggingEnabled() methods.
Refactor code in FileTarget

* Split long methods to increase code readability and produce
opportunities for further logical grouping of the code into smaller
classes.
* Renaming of parameters, private method in order to their purpose more
clearly.
* Rework wording of InternalLogger messages.
* Introduce constants naming "Magic Numbers" used in the class.

Conflicts:
	src/NLog/Targets/FileTarget.cs
Added FileNameTemplate Private Class in FileTarget

FileNameTemplate private class added in FileTarget to encapsulate the
operations related to matching and replacing patterns on file names.
Document FileNameTemplate class in FileTarget

Conflicts:
	src/NLog/Targets/FileTarget.cs
Merge pull request #474 from ie-zero/v4.0

[Fix] ArchiveFileOnStartTest was failing