New ASM event injection framework

This is a modified version of @matthewprenger 's system that ServerTools uses.

Team, contact me if you need events/want to know how to use this. We're doing things slightly differently from what ServerTools does, this is because we need to accommodate dynamically changing the patches depending on environment (forge version, presence of sponge, etc).

This includes patches for the Permissions API, as well as for a sign edit event that will be used at some point in the future.

This PR resolves #1049 . I will pull this soon, if there are no objections. You will be required to re-run the setup task when updating your local repo.