INT-3570 Core 4.0 Schema Work Around

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

In 4.1 we removed the 'old' schemas to reduce clutter. However certain
extensions such as kafka import the 4.0 schema which is no longer on
the classpath when using Spring Integration 4.1 when there is no internet
connection.

INT-3570 states that we should restore the 4.0 core schema and mapping
to resolve this issue. In the meantime, this work around adds the schema
to the kafka jar.

It should be reverted when INT-3570 is released in Spring Integration 4.1.1.
INTEXT-121 Add SmartLifecycle to ProducerContext

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

When using `async` producers, the buffered messages need to be flushed.

Previously, when the context was stopped, such messages were lost.

- Implement `SmartLifecyle` in the producer context and propagate the `stop()` to the underlying producer(s).
- Remove unused attributes from the consumer parser.
- Add a test case to show the buffered message is received after closing the producer.
- Add KafkaRunning JUnit `@Rule`

Add KafkaRunning Rule to Parser Tests

Polishing
IE-100: Kafka:o-c-a: topic and message-key attrs

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

Add `topic(-expression)` and `message-key(-expression)` attributes to avoid upstream configuration
to specify them in the `MessageHeaders`

Polishing for XSD

Conflicts:
	spring-integration-kafka/src/main/java/org/springframework/integration/kafka/support/KafkaProducerContext.java
	spring-integration-kafka/src/main/java/org/springframework/integration/kafka/support/ProducerConfiguration.java
	spring-integration-kafka/src/main/resources/org/springframework/integration/config/xml/spring-integration-kafka-1.0.xsd
	spring-integration-kafka/src/test/java/org/springframework/integration/kafka/config/xml/KafkaOutboundAdapterParserTests.java

INTEXT-100: Add `Assert.notNull(this.evaluationContext);`

INTEXT-100: Fix parser potential NPE

INTEXT-100: Add `KafkaHeaders`

Merge branch 'INTEXT-100-1' of ..\spring-integration-extensions into INTEXT-100

Conflicts:
	src/main/java/org/springframework/integration/kafka/outbound/KafkaProducerMessageHandler.java
	src/main/java/org/springframework/integration/kafka/support/KafkaProducerContext.java
	src/main/java/org/springframework/integration/kafka/support/ProducerConfiguration.java
	src/test/java/org/springframework/integration/kafka/config/xml/KafkaOutboundAdapterParserTests.java

* Polishing according the rebase to `master`
* Polishing for the `KafkaRunning` Rule to use `ZkClient` and its `getAllBrokersInCluster`
* Add a note to the `README.md`
Addressing PR comments
Polishing

- Minor doc polish + change tabs to spaces in code
- Enhance test to include expressions