REVIEW-3633: minor cleanup on option handling

- moved OptionNotationParserFactory to org.gradle.api.internal.tasks.options
- inject the NotationParserFactory to OptionElements and use factory method for creating
	OptionElements
- throw OptionValidationException instead of GradleException in OptionNotationParserFactory
-
REVIEW-3519 Move @OptionValues lookup to OptionReader to

- cache the results
- fail early on wrong used annotations