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