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

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