Add ability to define custom MSBuild loggers

It's needed for example to integrate the build log in AppVeyor.

Further with this change we could refactor the logger registration, so that `TeamCityLogger` is used only if `buildServer` is actually `TeamCity`.