XD-538 - Develop infrastructure to enable testability of commands

* Add code to cleanly shutdown tomcat as taken from Tomcat unit tests - not used as still hangs on tomcat.stop()
* Force shutdown of tomcat using destroy method, log warning.
* When random port is requested, retrieve port that was selected by the system
* Destory web application contex in StreamServer stop to avoid reflection calls from clients of StreamServer that want to stop the server cleanly
* XDShell processes command line arguments --port and --host to configuration how to connect to XDAdmin on startup
* XDShell target command will throw an exception to indicate failure of the command.
* JobCommands and TapCommands return Table objectd for list command
* Update ReferenceDoc command that uses shell to take into account CommandLine class that is autowired
XD-499 Cron Jobs stop firing when a named trigger is created and deployed.

The issue was that after the trigger was created programmatically the code would refresh the context and that would clear the scheduler.
* The fix was to create the triggers as singletons.  Thus eliminating the need to refresh the context.
* Also did some code cleanup.
* Had to remove some commented code.
* Updated code to restore the original clarity offered by the original code in cases where a user tries to create a trigger with multiple types.
Merge Mark's changes into master
XD-499 refactored exactly-one-trigger validation
XD-538 - Develop infrastructure to enable testability of commands

* Add code to cleanly shutdown tomcat as taken from Tomcat unit tests - not used as still hangs on tomcat.stop()
* Force shutdown of tomcat using destroy method, log warning.
* When random port is requested, retrieve port that was selected by the system
* Destory web application contex in StreamServer stop to avoid reflection calls from clients of StreamServer that want to stop the server cleanly
* XDShell processes command line arguments --port and --host to configuration how to connect to XDAdmin on startup
* XDShell target command will throw an exception to indicate failure of the command.
* JobCommands and TapCommands return Table objectd for list command
* Update ReferenceDoc command that uses shell to take into account CommandLine class that is autowired
Merge branch 'master' into marks
XD-507 Support pagination in list() command (taps)
Fix ?page argument passing
Fix tests so that they are independant when running in same process (IDE)
Fix compiler warnings
One step closer to InMemory analytics and fixes local mode
Fixing integration tests
Added basic display of counter
Make singlenode work without redis
XD-506 Support pagination in list() command for jobs.

* Updated code to support the pagination on the existing list command.
* Updated Tests accordingly.
XD-542 Refactor Module to include group and index

Module represents an instance (defined by group and index)
but most APIs passed module, group, and index around.

Encapsulate the group and index and change APIs to just pass
the Module.
XD-508, XD-551 Triggers: Support pagination in list command

* XD-551 Add "trigger list" support to Spring XD Shell

Jiras:

* https://jira.springsource.org/browse/XD-551
* https://jira.springsource.org/browse/XD-508
XD-542 Rework

Add DeploymentMetadata (based on @tekul DeploymentInfo)

Module constructor now takes a ModuleDefinition and DeploymentMetadata.
Merge branch 'XD-545-Display-Counter'
Fix ReferenceDoc unit test