Changes to AbilityModule, created API package

* Made abilitymodule abstract so authors are forced to implement
methods. This way they wont forget to implement important methods
* Documented the abilitymodule class
* Created API package
* Moved AbilityModule and GrapplingHookAPI into API package
* Updated references
* IMPORTANT: All custom abilities need to be updated to fit new
requirements and package name