Hide modules and methods

I've changed the @hideExceptForSuperUser annotation to a @hide annotation. @hide takes up to one argument. If there's no argument @hide will always hide the annotated plugin's API. If the argument is set then there is a API.DocumentGenerator.hide<annotationArgument> event dispatched. The event should be handled in the plugin and it should set the &$response to true if the plugin API should be hidden from the current user or false if the user should be able to see the plugin API.