Feature/refactor logging

I replaced the command line output with NLog and I use NLog to log straight to msbuild for more useful error messages than "Program exited with code 1" or "Program exited with code 7894648897".

Now you get msbuild error in VS like cannot parse spec, error around line x col y. Or non-terminal cannot be defined twice, etc.