Add a mechanism to register injection annotations globally and use this to validate that annotations are not attached to types where they are not supported. For example, fail when `@Workspace` is attached to a task property getter.