Refactor analytics, merging repo and service into one; Done for Counters
with REST exposition
XD-490 StreamDeployer to implement ResourceDeployer
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