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.
This code is needed because we want to hide DBStats API from users that are not super users and we are no longer using an array containing each API we want to hide.