Allow controlling the visibility of slots using modifiers

  * For now, only the protected modifier is used, every other modifier
    will cause the generated methods to be public