improved behaviour in case of exceptions in geotools commands
Fixed wrong GeoTools export tests
Merge branch 'return_codes' of git://github.com/volaya/GeoGit into volaya-return_codes
Fixed issues and added unit tests for sparse clone.

Filters now work on feature paths instead of feature types names.
Added an argument check for providing an explicit branch with sparse clone.
Fixed an issue which caused the commit traverser commit order to be incorrect.
Fixed an issue which could cause a null pointer exception while sparse cloning.
Fixed an issue with modified objects not being transferred to the sparse clone.
Added unit tests for sparse clone.
Added OSM mapping log and adapted OSM commands accordingly
Added hooks functionality
changed behaviour of import/map commands to better adequate to mapping log.

Modified tests accordingly
Removed constructor without arguments for CannotRunGeogitOperationException.java
Refactored OSMDownload to OSMDownloadOp and OSMUpdateOp internal operations.

Also fixed an issue which caused compiler errors with Java 1.6.
added OSM man pages

added also missing man page for diff comand
fixed some wrong OSM code and tests
Moved unit tests from OSMDownloadTest to OSMDownloadTestOp.  These tests do not use the CLI.
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.
Merge master onto volaya-return_codes
Merge pull request #401 from jdgarrett/sparse-clone-tests

Fixed issues and added unit tests for sparse clone.
clean up CLICommand.run() signature
Merge remote-tracking branch 'origin/pr/400'
Make @RequiresRepository(true) the default.

This patch moves the check for @RequiresRepository from AbstractCommand.run() to GeogitGLI
and also makes the annotation inheritable, so that the annotation serves both for AbstractCommand
subclasses and plain implementations of CLICommand. A nice side effect is AbstractCommand declares
@RequiresRepository(true) as the default so declaring it on all commands is not necessary.
clean up remaining uses of IAE/ISE in CLICommands
Package refactoring: move geogit-geotools cli commands to the org.geogit.geotools.cli.porcelain package.