Several improvements to CLI exception handling.

- Document which exceptions are to be trhwon by CLICommands and under
which circumstances.
- Stop using CommandFailedException purely as a marker exception and
make  it more useful, containing the error message and the cause of
the command failure (so the original exception is not swallowed).
- Introduced org.geogit.cli.InvalidParameterException to be thrown
by CLI commands when an argument validation fails, rather than
throwing IllegalArgumentException.
- Added a @RequiresRepository annotation for commands that require
a repository to exist to declare it, and let the AbstractCommand
template take care of checking for the repo availability at a single
place.
- Made commands that didn't extend from AbstractCommand for no reason
extend it and make use of the services provided by the template class
(for instance, support for --help, --color, preconfigured Ansi instance
through the newAnsi() method, repository existence validation if the
class is annotated with @RequiresRepository, etc.
- Javadocs for some classes that missed it.
- General code cleanup for CLICommands to get rid of useless javadoc
and to better respect the exception throwing policy (as described in
CLIComamnd.run() javadoc.