Added support for configurable violation reporting (error vs warn)

 - Now you can choose between warn and error in linter. Error results in
   a compilation error, whereas warn in a compilation warning
   (suprisingly enough :)