[dml-compiler] Allow modifiers to control the visibility of generated methods and classes

  * For now only slots and classes are affected
  * The default behaviour (if no modifier is specified) is public, if the "protected"
    modifier is specified, the generated method will be protected