XD-523: allow hyphens in module/stream names and polish
XD-500 In cases where a trigger does not exist upon Job Deployment, the Rest Interface needs to hand back a 404 exception vs. a 500 exception.  Also added constants for string values.
As a second note I thinned out the exception stack that is returned is more concise.

Per Code Review reduced the accessiblity the parser and messageSender of parent class.

XD-500 Return a 400 error instead of 404 if the named trigger associated with this job has not been created.

This is per Eric's update to the story.
* Updated code based on code review requests.
** Built error messages using String.format
** Used enum instead of String constants.

XD-500 Merge Conflict Resolved.

We reduced the visibility of this parser and messagesender so that only the abstract deployer can issue commands as a proxy.
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.