XD-954: Provide DSL completion for simple cases

Wire completion provider to the REST layer and Shell

Fix trailing space handling

Add parser recovery logic

Generalize provider logic = recoveries | expansions

Change tests to accommodate new parser behavior

Fix counter module options following rebase

Fix fallthrough warning

Fix serial version warning

Fix generics warnings

Fix typos

Rename strategy methods

Rename CodeCompletion -> Completion

Reference issue numbers in ignored tests

Rename CompletionKind.composed to module

Rename CodeCompletion -> Completion

Use Spring SHL SNAPSHOT
XD-1271 Enable Endpoint RequestHandlers

- By default, Boot's EndpointWebMvcAutoConfiguration disables
Endpoints request handlers if the management port set to '0'
If we remove the explicit setting of management port to '0' then
the management port will use the server properties port and
the Endpoint request handlers are enabled.
- Also, removed unused "memory" profile
XD-1276 Add job and step listeners to OOTB jobs

- Adds builtin listeners to job config files.
- Removes notifications from launcher to avoid dup job execution
  msgs.
- Adds beforeJob notifications in default job listener
- Adds a basic script test to check notifications
Add missing RandomConfig support

- Added RandomConfigurationSupport for the tests that use StreamTestSupport
Add completion to jobs and composed modules
XD-1229 + XD-1230 Create build infrastructure for AngularJS based UI

The Grunt-based build infrastructure is based on Yeoman's AngularJS support and then further customized. As part of `XD-1230`, this build process is then further integrated into the larger Spring XD Gradle build. Please see `README.md` for further details.

* Add AngularUI Router dependency
* Add UI-Router routes
* Add LESS support + UI Admin Styles
* Instead of customizing Bootstrap's `variables.less`, we instead import its styles into `main.less` and customize only the variables that changed. That way we can easily upgrade Bootstrap in the future
* Fix a `grunt-usemin` issue with images in CSS files
  - Use fix as detailed here: https://github.com/yeoman/yeoman/issues/824#issuecomment-29137057
  - See also issue: https://github.com/yeoman/grunt-usemin/issues/242
* Exclude vendor CSS, we already import the Bootstrap CSS via `main.less`
* Don't use port 8080 for Karma tests in order to minimize conflicts with Tomcat
* Add "Loading Indicator" support using `angular-busy`
* Add Job launch support + Growl support + define XD Server URL globally
* Use Bootstrap fonts from the distribution
* Improve Job launch support
* Update `.gitignore`
* Update Nodejs dependencies, fix test dependencies
  - Running `npm install` should install all relevant dependencies from `package.json`
* Add Gradle build support
* Import CSS files as LESS resources in `main.less`
  - Otherwise you run into minification issues as Grunt's nsmin does not consider those CSS files
* Remove old `admin-ui`
* Improve resolving of the admin-ui URLs
  - http://localhost:9393/admin-ui --> http://localhost:9393/admin-ui/#/jobs/definitions
  - http://localhost:9393/admin-ui/ --> http://localhost:9393/admin-ui/#/jobs/definitions
* Add task `cleanDist`
* Improve Gradle build - Depend on `spring-xd-dirt:backgroundAdminServer`
* Fix `xd.ui.home` in `application.yml`
  - `xd.ui.home` in `application.yml` should contain a trailing slash
* Add `grunt-bower-task` to Grunt build
  - Allow Bower to be called via Grunt
* Test that the UI builds with `gradle npmInstall installGrunt build`
* Update Node dependency versions
* Fix "Required config property "bower-install.app.src" missing"
  - Bower Install - In `Gruntfile.js`, change config `html: '<%= yeoman.app %>/index.html',` to `src: '<%= yeoman.app %>/index.html',`
* Add Proxying to XD Admin Server via Grunt build
  - Add https://github.com/drewzboto/grunt-connect-proxy
* Better error messages when pulling Job Definitions
* Add `.bower_cache` directory local to project dir
* Add Karma shell scripts
  - I find these shell scripts quite useful when writing unit and e2e tests as you can configure Karma to keep running as a daemon (automatically re-running the tests of code-changes do occur)
* Add Grunt task `testfiles` - useful to prepare Spring XD test files
* Add Karma Safari launcher
* Add Unit and E2E tests
* Remove unnecessary files
  - .gitattributes
  - app/.buildignore
  - app/robots.txt
* Remove old loading Gif `loading.gif`
  - Remove unused related CSS
* Ensure we use only single quotes in JS files
* Improve Favicon support including mobile
* Remove main.css + main.css.map (autogenerated)
* Make sure LESS creates CSS files when executing `grunt serve`
* Update `.gitignore`
* Change Grunt Server Port to 8000
  - Port 9000 conflicts with Sonar
* Improve Gradle Build - `gradle build` will:
  - Install (if needed) node
  - Install (if needed) grunt
  - Download node dependencies for XD UI
  - Run the Grunt build
* `gradle clean` will remove all unnecessary spring-xd-ui folders (e.g. local node modules, bower files etc)
* Run Spring XD UI Grunt build on Eclipse STS import
  - Add task `afterEclipseImport`
  - See for details: https://issuetracker.springsource.com/browse/STS-2059
* Add `README.md`
* Fix live-reloading of Html files
* Fix copying of images in `Gruntfile.js`

XD-1229 Code Review changes

* Remove `.htaccess`
* Run E2E as part of the Gradle test task
* For distribution, copy Admin UI to `spring-xd-ui/dist`
Polishing the UI tasks

- Make spring-xd-ui project independent and not run the build
  as part of 'gradle build'
- Added tasks 'setupUI' and 'cleanUI' that takes care of building/cleaning
  the UI project
- Removed an invalid URL from index.html