This commit introduces an annotation processor for patches. Patches can use the `@Patch` instead of super constructor parameters.
BREAKING CHANGE: The manifest for patches has been removed, and the properties have been added to patches. Patches are now `OptionsContainer`. The `@Patch` annotation has been removed in favour of the `@Patch` annotation from the annotation processor.