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.