Fixed logging null issue & sln version parsing

1. Fixed so logging won't throw an exception if one of the args should be null but instead log [NULL]
2. Now parses solution version information if available

Example Cake script iterates all solutions in given path and outputs solution info:
```csharp
var solutions       = GetFiles("/dev/github/**/*.sln");
foreach(var solutionPath in solutions)
{
    Information("Parsing {0}", solutionPath);
    var parsedSolution = ParseSolution(solutionPath);
    Information(
        @"Solution file
Version:                     {0}
VisualStudioVersion:         {1}
MinimumVisualStudioVersion:  {2}
Projects:                    {3}",
        parsedSolution.Version,
        parsedSolution.VisualStudioVersion,
        parsedSolution.MinimumVisualStudioVersion,
        string.Join(",", parsedSolution.Projects.Select(project=>project.Name))
    );
}
```