DSL: Add `File.` Namespace Builder Factory

* Introduce `ComponentsRegistration` *marker* to extract internal components from the `IntegrationComponentSpec` to be registered as bean in the application context
* Add `ConsumerEndpointSpec#order(int order)` for the `order` of target `AbstractMessageHandler`
* Fix `AggregatorSpec` to use `DefaultAggregatingMessageGroupProcessor` by default
* Fix `IntegrationFlowBeanPostProcessor#generateBeanName` to check if `instance instanceof NamedComponent` and its `beanName` has been configured
using `IntegrationComponentSpec#id`
AWS: Updated to spring-integration to 4.0.3

Made the corresponding API changes.

Had to update jacoco to latest (0.7.1.blah) to get the tests to work correctly on OSX Java 8

Fixed JavaDoc errors show up by the Java 8 linter. Build passes

Bringing dependencies inline with Spring 4.0.6

Updated mockito to 1.9.5

Updated Hamcrest to 1.3

Updated aws-sdk to 1.8.7

Merge branch 'master' into integration-4.0

Reformatted gradle file inline with the existing standard

Switch back to using the milestone repo

Upgrade Gradle version to 1.12

Updated the schema references to use un-versioned refs

Updated author tags and copyright dates

AWS: SI-4.0 Polishing
Kafka-GH-92: Allow PP for the `<topic-filter>`

Fixes https://github.com/spring-projects/spring-integration-extensions/issues/92
Make ConsumerContext disposable

- This will allow shutting down the consumer connector for the consumer
configuration when the associated context no longer exists.
Java DSL: Fix EnricherSpec to prevent assertions

Fixes: https://github.com/spring-projects/spring-integration-extensions/issues/101
DSL-(S)FTP-Namespace-Builder-Factory

**DO NOT MERGE YET**.

There is need to provide tests on the matter.

(S)FTP Tests

* Add test cases for (s)ftp components based on embedded (S)FtpServers
* Upgrade some dependencies
* Fix bug in the `IntegrationFlowBeanPostProcessor` for the registration internal (a result of `MessageSourceSpec`) as a bean in the AC
Kafka: PP for consumer context bean

JIRA: https://jira.spring.io/browse/INTEXT-112
https://jira.spring.io/browse/INTEXT-111

 - Avoid using hardcoded bean names for consumer context
 - Remove Integer value topic streams count, instead use string value
   - This will allow placeholder values to be used for `streams` attribute
 - Set `group-id` as a bean name for consumer configuration bean only if
   the group id is specified explicitly. This will allow placeholder values
   not being used as a bean name.
 - Add test cases to verify multiple consumer configurations within the
   same consumer context.

Set consumerConfigurations as propertyValue

Better handling of consumerConfigurations

 - Add getConsumerConfiguration(String groupId) in KafkaConsumerContext
   - Fix tests
 - Add additional test case to check multi consumer contexts

Fix getConsumerConfiguration(groupId)

Polishing
DSL: Mail namespace & `MailSendingMessageHandler`

DSL:Add SMTP Mail Server

Polishing - PR Comments

DSL: Mail: add `PropertiesConfigurer` lambda

* Move `IntegrationFlowTests` to the `flows` package to avoid cross scanning for components
* Make `MailTests` as integration test and move `Mail.outboundAdapter` to the `IntegrationFlow` `@Bean` definition
DSL: Mail Inbound Adapters

Add POP3 Server for Tests

Polishing; PR Comments; IMAP4 Server
DSL: Mail Polish - Add SearchTerm (lambda) To Test
DSL: Mail - Add IMAP Idle Adapter

Polish IMAP test server and update it to support IDLE.

Polishing

Polishing - Fix IMAP Server

Changes required because receiver is now initialized.
DSL: Add support for IntegrationFlow Lambda

To simplify a bit the `direct` integration flow definition, the `IntegrationFlow` Lambda is introduced.

* Extract `IntegrationFlow` functional interface with `define(IntegrationFlowDefinition<?> flow)` method.
* Rename existing `IntegrationFlow` class to the `StandardIntegrationFlow` and move it to the inner class within `IntegrationFlowBuilder`
* Extract `IntegrationFlowDefinition` superclass for the `IntegrationFlowBuilder` to be used within `IntegrationFlow` Lambda
to hide `get()` method from end-users.
* Change `IntegrationFlowBeanPostProcessor` for a new logic around `IntegrationFlow` Lambda
* Rename `MessagingProducerSpec` to the `MessageProducerSpec`

Conflicts:
	spring-integration-java-dsl/src/main/java/org/springframework/integration/dsl/IntegrationFlowBuilder.java
Polishing after `rebase`
DSL: Add `enrichHeaders(Map)` EIP-method

* Introduce `MapBuilder` and its custom inheritor - `MailHeadersBuilder`
* Add `HeaderEnricherSpec.headers(MapBuilder)` and `.headers(Map)`
* Change `MailTests` to use new `Mail.headers()` and new `IntegrationFlowDefinition.enrichHeaders(MapBuilder)`
* Change `mailapi` dependency to the IO's `javax.mail`

Polishing - Add headerExpressions()

More Polishing - Add Configurer

Polishing - PR Comments

- Move MapBuilderConfigurer to superclass.
- Move PropertiesBuilderConfigurer into PropertiesBuilder.
INTEXT-113: Make `.route()` as non-last component

JIRA: https://jira.spring.io/browse/INTEXT-113

Previously `router` could be configured only as last component in the `IntegrationFlow` definition.

* Remove `defaultOutputChannel` options from `AbstractRouterSpec`
* Populate `outputChannel` to the `AbstractMessageRouter.defaultOutputChannel`, when there is more EIP-methods after `.route()`
* Rename EIP-method `.recipientListRoute()` to the `.routeToRecipients()`
* Make compatibility with SI 4.1
* Tested against SF 4.1
Upgrade to SI 4.0.4 and Boot 1.1.6
INTEXT-114 Fix outputChannel population AOP issue

JIRA: https://jira.spring.io/browse/INTEXT-114
DSL: Fix Tail Tests

Timing problem - set end(false), don't start adapter until file
is written.
[artifactory-release] SI Java DSL Release version 1.0.0.M3
[artifactory-release] Next development version