Propagate taskDefinitionKey in Incompletes from flatMaps.  Ref #784.
handle directory classpath entries in ClasspathFilter.  Fixes #783.
Fully implement StaticScopes subclass of Initialize in order to support use in Task flatMap.  Fixes #784.
Docs: fixes, updates, reorganization
allow java varargs main

http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.1.4
Key parsing improvements. Ref #776.

* Explain context of expected ':' and '/' error messages
* Restore strict project ID parsing to get proper message about invalid project ID
handle empty help list in aligned printing
separate out help message functions
'definitive' Parser failures

Support a definitive flag for Failure that ignores later failures
instead of appending them.  This is useful to override the default
behavior of listing the failures of alternative parsers.
Merge failures from a,b in a|b when a,b fail on the same input position.

Previously, only the failures from b were used.
invalid/failure Parser construction methods now accept definitive flag
SoftInvalid parser, which defers being invalid in order to preserve a failure message on empty input.
Basic named commands now print usage if the argument parser fails on empty input.  Fixes #776.

The Help for these commands now needs to be cleaned up, since they were not written with
this feature in mind.  In particular,

* consider adding syntax summaries in the short help strings
* alternatively, add the syntax summary data elsewhere for use specifically by this feature
* display a better message when there is no short help string, such as
   "See 'help <command>' for usage." or just displaying the lower level error message, such as
   "Expected whitespace"
Add syntax summary to 'set' and 'inspect' help.  Follow-up to #776.
Support dynamic evaluations of optional settings (Initialize.evaluate).
Require projects to have unique target directories.

Configuring projects so that target directories overlap is usually
unintentional and the error message that results is usually unrelated
to the cause.
set position on parameter references in task/setting macros
Promote new State methods to public
remove task key definition from the build since it is now in sbt
Handle newer predefined launcher types in boot overrides