Add annotation processor for init methods and `@Init` annotation
This should simplify feature initialization a lot. Note that this is my first time writing an annotation processor and it might not be perfect, so any feedback is welcome.
I might add a priority parameter and sort method calls by that before adding them if there's ever a conflict due to something not being initialized by the time something else tries to call it.
1 small thing before anyone asks, I don't know if the build.gradle file is needed in the processor subproject. I'm assuming there has to be one for it to be a subproject, but I honestly don't know.
~~The commit history is quite something, idk why the older commits didn't get overwritten when rebasing onto master as they usually do. Every commit is done like 3 times for some reason, lol.~~
Huh, they got removed after refreshing the page.