This augments the injection codegen with the capability to produce a duck.InformerFactory
attached to context for each type that we process.
Now a `duck.InformerFactory` for "Addressable" can be produced by "Get"ing it from the context.
This is triggered by placing `// +genduck` on the type that implements `duck.Implementable`.
Destination sits in a strange versioned directory without a group under APIs. Destination is in fact part of our duck type space, so it belongs under the `duck` group. This moves the definition (previously v1alpha1) to `v1` because it is referenced from source types that have been designated `v1`.
* change Destination api and addressable resolver, fixed unit tests and added more unit tests
* make validateDestination visible
* rename error msg, added comments, added unit tests
* reformat error msg and change positive case order
* modified error msg when ref is not valid
* fixed typo