XD-2169 - Create standalone list of deps for project

Switch from platform-managed dependency versions to a local file
compatible with the `versionManagement` mechanism of the Spring Boot
Gradle Plugin (initially, the file is a clone of the versions list
found in Spring IO 1.0.1.RELEASE).

This is necessary in order to allow the project's dependency list to
evolve independently from Spring IO (e.g. in order to upgrade Spring Boot).
XD-2146 Upgrade to 1.1.7.BUILD-SNAPSHOT
XD-1811 Custom module registry location

- In addition to `xd.module.home` and `classpath:/modules` as the default
module registry locations, an additional `xd.customModule.home` is provided
to let the user define any specific supported URL path for the module registry.
- Add an entry for `xd.customModule.home` in servers.yml so that user can
specify it.

Fix description not to use http:// location

Handle customModuleHome placeholder

 - Add `isActive()` to ModuleRegistry
 - Include only the active module registries to the DelegatingModuleRegistry
Comment out properties
Assign null default for custom module registry

 - Having `null` as the default value for custom resource module
registry will let us handle the look up methods return null/empty
values.
Remove redis/kryo stuff that is not used anymore
XD-2170: NoNodeException for job creation

When an admin process is elected leader/supervisor, it will query
the state of all streams and jobs. It does this by iterating all
streams under /xd/deployments/streams/[stream-name] and jobs under
/xd/deployments/jobs/[job-name]. Under each path, it is expecting a
modules node which contains all of the modules deployed for the stream or job.

The issue is that if *no* modules were deployed for the stream/job,
that node will not exist because it is created lazily by the container.
This is unlikely in the case of streams since a stream contains at
least two modules, but is much more likely with jobs since they
only contain one module.

The fix is to ensure that the
/xd/deployments/streams/[stream-name]/modules path (and the same for
jobs) is created upfront by the supervisor prior to creating the
module deployment requests. This will allow the supervisor to see
that no modules for the stream/job have been deployed and thus
take appropriate action.
XD-2119,XD-2143,XD-2144

* Add 'spring-boot-starter-security' as a dependency
* Set up the admininstration and management endpoints as insecure by default
* Unit tests for SSL
* Unit tests for security enablement

Disable AuditAutoConfiguration by default
XD-2147 Update Spring Boot to 1.1.7.RELEASE
XD-2145 - Shell changes:

* Use Apache HttpClient for authentication in the Shell
* admin config server' now supports the '--username' and '--password' parameters
* Supporting unit tests for HTTPS and authentication in the Shell.
Adding a null sink

- Null sink can be useful when the main stream isn't focused on
  stream destination but the tap streams are used for analytics etc.,
- It is also useful to iteratively add in steps to a stream
  without worrying about having to land data anywhere.
XD-2181 Add configuration options to servers.yml

* Add configuration options to servers.yml
* Update test configurations to use the scheme suggested in servers.yml
Rename REST endpoints `cluster` to `runtime`

  - This change is required for backward compatibility with 1.0 GA
  - Also fixed the shell command to read `runtime`
XD-788 Job Command Integration Tests

* Extracted job methods from AbstractIntegrationTest and moved them to AbstractJobTest subclass
* Jobs Inherit from AbstractJobTest
* Moved methods from JobUtil to AbstractJobTest
* Removed JobUtil
* Using waitForTablePopulation instead of waitForXD in JDBC Source/Job/JobCommand tests.
* Removed un-necessary waitForXD's
* Implemented the following JobCommandTests
** testJobLifeCycle
** testJobCreateDuplicate
** testStreamDestroyMissing
** testJobCreateDuplicateWithDeployFalse
** testJobDeployUndeployFlow
** testInvalidJobDescriptor
** testMissingJobDescriptor
** testListStepExecutions
** testListJobExecutions

Refreshed code based on code review requests

* Removed super.setup and replaced with initializer
* Removed outdated docs
* Removed overloaded job method(wait-time)
* Removed overloaded stream method (wait-time)
* Renamed jobLaunch to launchJob
* Removed jobDeploy that accepts a boolean where true will deploy the job, false will not.
* Rebased and resolved conflicts
Fix WebUI: runtime containers

 - Fix REST endpoint that uses `runtime/containers`
XD-2192 Increase sleep for test job csvjob4 that occasionally fail
Use `localhost` as the target URL for test

 This replaces the previous look up to `RuntimeUtils.getHost()`. The latter has been noticed to cause issues on systems where the result points to an interface to which embedded Tomcat doesn't bind, causing a ConnectException.
XD-1616 UI: Add username/password screen

* Add Thymeleaf template
  - Configure `Gruntfile.js` to build `login.html` and copy to Thymeleaf template directory during Grunt build
* Add Spring MVC controller to handle login
* Polish login related styles in `main.less`
* Convert `spring-xd-ui` module to Java module (Spring Boot)
  - Allows for pluggable UI (`spring-xd-dirt` simply declares a dependency to the `spring-xd-ui` module)
  - Clean-up `spring-xd-ui` related tasks in `build.gradle`
  - Allows the UI (and the Thymeleaf templates) to run in isolation
  - Remove admin ui controller configuration from `/src/main/java/org/springframework/xd/dirt/rest/RestConfiguration.java`
XD-1616 Add MediaTypeRequestMatcher

* Use the `LoginUrlAuthenticationEntryPoint` for `MediaType.TEXT_HTML` requests
XD-1616 Add `AuthenticationEntryPoint`s

* Add `LoginUrlAuthenticationEntryPoint` for request with media-type `MediaType.TEXT_HTML`
* Add `BasicAuthenticationEntryPoint` for all other requests using `AnyRequestMatcher`
* Add `@ConditionalOnProperty` so configuration only applies if `security.basic.enabled` is `true`