Annotate optional inputs with @Optional

The alternatives and configurations inputs of the
AlternativeDependenciesTask are optional; if they are not specified,
sensible defaults are provided. This commit annotates them as @Optional
so that Gradle knows that a value is not required
Merge pull request #24 from wilkinsona/optional-inputs

Annotate optional inputs with @Optional
Test configs are ignored by default when checking excludes

Incomplete exclusions are only a problem for dependencies that will
appear in a project's generated POM files. Test dependencies will not
appear so we do not need to worry about them having incomplete
excludes.

This commit updates IncompleteExcludesTask so that, by default, it
will ignore any configuration whose name in lower case contains
'test'. To override this behaviour, the configurations property of the
IncompleteExcludesTask can be set to the collection of configurations
that should be checked

Fixes gh-25
Ensure that springioTestRuntime config contains Spring IO versions

The configured dependency resolution action is now registered for each
dependency in beforeResolve on the springioTestRuntime configuration.
This delays the reading of the configuration while also ensuring that
the resolution action is always applied to the configuration