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.
fixed issue in apply command with expected class in equal() method
Separated check patch logic from apply patch command and operation.
A new operation and a new plumbing command have been added for patch validity checking