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.
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