feat: Allow injectable metadata to be a children an of injectable annotation

fixes #181
perf(Binding): saves a call to `reflector.parameterKeysFor()`

When toImplementation is specified, the class is instantiated via the
`new` operator and then the ctor must have no arguments. Then there is
no need to call `parameterKeysFor` as it will always return an empty
list.
feat(Key): support annotations in addition to annotation types
chore(pubspec): release 3.1.0
Revert "perf(Binding): saves a call to `reflector.parameterKeysFor()`"

This reverts commit 81e870308f1515d9c515cc930fe0a9af91a80fb4.
chore(pubspec): release 3.1.1
feat(Annotation): use annotation instances instead of annotation types

Breaking Changes

Before:

	bind(SomeType, withAnnotation: SomeAnnotation)

After:

	bind(SomeType, withAnnotation: const SomeAnnotation())