INTEXT-95: Create SI Java DSL Project

JIRA: https://jira.springsource.org/browse/INTEXT-95
INTEXT-96: The Java DSL initial implementation

JIRA: https://jira.springsource.org/browse/INTEXT-96

* `MessageChannels` Builder
* Configuration infrastructure
* `Pollers` Builder
* Initial `IntegrationFlows` Builder
* `EndpointConfigurer` Specs
* EIP-methods `from(MessageSource)`, `from(MessageChannel)`, `transform`, `filter`
Make gradlew Executable
Provide `Copyright` for classes
`Spec<?, ?>` improvements

* Provide `id`-aware DSL methods for `MessageChannelSpec`
* Rework `DslIntegrationConfigurationInitializer` to delegate to `IntegrationFlowBeanPostProcessor`
to allow to use components from `IntegrationFlowBuilder` via `@Autowired`
Revert `IntegrationFlow` processing to `BFPP`

Add test case for `@MessageEndpoint` to et deal with channel from `IntegrationFlow`
As far as `AbstractMethodAnnotationPostProcessor` tries to resolve `channel` on endpoint creation,
the `IntegrationFlow` processing can't be done in the `BPP`, because `MessagingAnnotationPostProcessor` may parse
annotations for bean before `IntegrationFlowBeanPostProcessor` will do its stuff.
`IntegrationComponentSpec` refactoring

Introduce `Tuple`
Apply `EndpointConfigurer` for `MessageSource<>` DSL-method
Introduce EIP-methods `handle()` and `bridge()`

* Remove generic argument from `GenericEndpointSpec`: it isn't necessary
* Add check for `one-way` flow in case the last component isn't `MessageProducer`
Introduce method-invoking `handle`

* Add generic argument to `GenericEndpointSpec`.
Since `EndpointSpec#get()` returns `Tuple` with `EndpointFactoryBean` and `MessageHandler` objects
it is useful to get deal with specific generic for further `MessageHandler` configuration within `EndpointConfigurer` lambda
* Change DSL-methods to get deal deal with those generics.
* Add `FileWritingMessageHandler` test to demonstrate it.
* Fix bug around double `MessageHandler` bean registration from `DslIntegrationConfigurationInitializer`, when handler is a reference
to existing bean.
Support @Autowired for Configurations with DSL
Add `delay()` EIP-method
Add `enrich()` and channel names option
Add support for `FixedSubscriberChannel`
Add `split()` and `enrichHeaders()` EIP-methods
Add `resequence()`,`aggregate()`,`headerFilter()`

Polishing for `@Copyright`
Add `controlBus()` EIP-method
Add `route()`, `recipientListRoute()` EIP-methods
Polishing to `MessageChannelSpec`
Add some JavaDocs
INT-3336 Add error-channel to MQTT m-d-c-a

JIRA: https://jira.spring.io/browse/INT-3336

Previously exceptions thrown in a flow downstream of a
message-driven-channel-adapter were not logged and thrown
back to the client, causing the connection to drop and
reconnect.

Add `error-channel` to the adapter to allow normal
error handling. If no error channel, catch and log
the unhandled exception.

Add `adapter.stop();` in the end of 'real' tests to close the mqtt-connection.

Disconnect the client after verifying the broker is available.
Change the rule to a class level rule in DownstreamExceptionTests.