feat(Annotation): use annotation instances instead of annotation types

Breaking Changes

Before:

	bind(SomeType, withAnnotation: SomeAnnotation)

After:

	bind(SomeType, withAnnotation: const SomeAnnotation())