hide annotation with tests

Added @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 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.
the event is not necessary as we need only `hideExceptSuperUser` for this PR