Some simplification of client input forwarding:

- Introduced TextStream interface to represent a stream of text, possibly produced asynchronously.
- Changed InputForwarder to use this
- Removed lifecycle management from DaemonClientInputForwarder as it is also provided by InputForwarder.
Changed LoggingBackedStyledTextOutput to extend AbstractLineChoppingStyledTextOutput instead of using LineBufferingOutputStream, to avoid encoding and decoding to bytes.
Changed LineBufferingOutputStream to push text to a TextStream instance rather than an Action<String>.
Removed unused type.
Inject some stuff into TaskNameResolvingBuildConfigurationAction instead of pulling from Gradle instance.
Added type param.
Some spec updates.
Moved NotationParser to a new package.
Moved NotationParserBuilder into new package.
Moved some NotationParser implementations to a new package.
GRADLE-2371 - Changed POM parser to use scope from dependency management element with matching (groupId, artifactId, type, classifier).
Added placeholder for change to dynamic version resolution for module with a mix of meta-data and no meta-data.
Added an open issue to the C++ spec.