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