XD-2237 add python module for implementing processor
XD-2237 removed stray .pyc and __init.py
XD-2026 Tweaks for storing admin metadata into zookeeper

- New RuntimeRepository for admin metadata
- Following same concepts used in ContainerRepository
- Store real bind port from tomcat into this repository. RuntimeAttributes
  based on ContainerAttributes except group info has been removed.
- Metadata updates happen in DeploymentSupervisor where update logic
  is based on concepts from ContainerRegistrar.
- ZK path /xd/admins is moved over to /xd/adminelection and /xd/admins
  is now solely used for metadata in a same way that /xd/containers.
- ZooKeeperRuntimeRepository doesn't use caching because we don't
  expect a lot of runtime admin containers and we don't read that often.

XD-2026 Fixes for review

- Renaming ContainerRuntime and RuntimeAttributes to
  Admin and AdminAttributes respectively. Follow same
  rename logic throughout the rest of the classes.
- Added sync block guarding zookeeper within app events.
- Registration now before election.
- Delete old registration instead of waiting zk to do it.
- Some other small fixed which weren't catched in review.
XD-2274: Intermittent TcpModulesTests testTcpSink

Introduced usage of EventuallyMatcher for tcp sink output.
Merge branch 'XD-2237' of https://github.com/dturanski/spring-xd into dturanski-XD-2237
Merge branch 'dturanski-XD-2237'
Test cases asssociated with the commit validates Py code changes.
Ran through full test execution from this branch; test build successfully completed.
Merging to master.
Merge branch 'master' of https://github.com/spring-projects/spring-xd
Fix ShellCommandProcessorTests
  - Fix echo.py stream python module path
XD-2239 Make container IP/hostname configurabale

* Make the container IP address configurable
* Make the container hostname configurable
* Add tests

XD-2239 Code Review changes
XD-2239 Fix container host key
Fixed ShellProcessorTests redux
XD-2238: Improve module deployment distribution

Introduced a "quiet period" property. The quiet period is the amount
of time that must elapse after the newest container arrives before
deployments to new containers are initiated. A short quiet period
is ideal for development environments because it results in quick
deployments to new containers. In production environments, longer
quiet periods are desirable because it will prevent the first few
containers from receiving all deployments.

Note that this property only applies to module deployments to new
containers; deployments initiated to existing containers are not
subject to delays.

When new containers connect to ZK, module deployments to the
new container are scheduled on the same executor service that
is handling all module deployments. If new containers arrive
during the quiet period for the first container, the deployment
will be rescheduled for the quiet period after the newest container
arrival time.
Add BeanFactory to Twitter Test
XD-2113: Fix redis agg-counter when right of interval on the hour

* Documented concatArrays
* Fix indentation, typos
XD-2286: Simple OOTB job for testing

The "timestampfile" job will append the current date/time to a file
when launched. This job can be used to validate a Spring XD
installation and to verify that jobs can be deployed. This serves a
similar purpose to "time | log" for streams.

This job supports the following options:

fileName
  Name of file to write timestamps to. Excludes parent directory and
  file extension. Defaults to the job name.

directory
  Name of directory to write timestamp file to. Defaults to
  "/tmp/xd/output/".

fileExtension
  Extension for file to write timestamps to. Defaults to "txt".

format
  How to render the current time, using SimpleDateFormat. Defaults to
  "yyyy-MM-dd HH:mm:ss"

restartable
  true if the job may be restarted.  false by default
XD-1791 Add Spark job

 - Add `SparkTasklet` that can run spark application in `client` mode
     - In client mode, the spark driver gets executed within XD container as a job module
     - workesrs run locally for master set to local
     - workers run on cluster for master set to spark or mesos URLs
     - yarn-client and yarn-cluster are not supported

 - Add module options to provide
     - master: to point to spark master
     - mainClass: the main class for the spark application
     - appJar: the bundled jar for the application and its dependencies
     - programArgs: the comma separated program arguments for the main class
     - name: the name of the Spark application
     - files: comma separated list of files to be placed in the working directory of each executor
     - conf: comma seperated list of key value pairs as config properties

 - Logging and handling of logs from Spark application execution
     - logging at error level when exit code != 0
     - logging app completion message at info level
     - logging Spark log at debug level
     - storing Spark command in step execution context
     - storing Spark log in step execution context
XD-2121 Add LDAP authentication support

* Establish an xd.security.authentication.ldap configuration root
* Support for LDAP bind authentication with user direct bind and user search
* The intent is for various authentication managers to live in the `org.springframework.xd.dirt.server.security` package, be scanned and activated depending on the configuration properties
* Group search support
* Tests for bind and search-and-bind configuration scenarios

NOTES:

1. Group management, while supported, will have no effect on security, as roles re anot applicable ATM.
2. Password comparison support should make the subject of another JIRA/PR as it is a common feature across various configuration mechanisms.
XD-2225 Paging support for Job Execution REST endpoint

* Make `BatchJobExecutionsController#list()` handle `Pageable`
* Add pagination for job executions to Admin UI

XD-2225 Code Review Changes

* Add test
* Polish BatchJobExecutionsController
* Rename Admin UI service method to `getAllJobExecutions`

XD-2225 Fix Shell
Remove dead/deprecated code
XD-2198 Refactor and simplify module registry