INT-3508: HTTP: Map `MessageHeaders.CONTENT_TYPE`

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

Before SI 4.0 and moving `MessageHeaders` to the Spring Messaging the `MessageHeaders.CONTENT_TYPE` had a value as `content-type`,
which was mapped to the HTTP Header `Content-Type` well.
Starting with SF 4.0 `MessageHeaders.CONTENT_TYPE` has a value `contentType`. It doesn't allow to map HTTP headers properly.

* Add `contentType` mapping logic to the `DefaultHttpHeaderMapper`, to map to the `Content-Type` HTTP header and vice versa.
* Fix bug in the `DefaultHttpHeaderMapper#toHeaders`: `ObjectUtils.containsElement` -> `containsElementIgnoreCase`.
Some HTTP servers can return `Content-Type` as `Content-type` or even `content-type`, although it is `Content-Type` anyway.
* Add test-case with `<int:object-to-json-transformer/>`, when the `application/json` value from `MessageHeaders.CONTENT_TYPE` is properly
mapped to the HTTP `Content-Type`. Prior to this fix we had to remap `MessageHeaders.CONTENT_TYPE` to the `Content-Type` manually using `<header-enricher>`

Reformat code

Use only `MessageHeaders.CONTENT_TYPE` for mapping to/from SI

Move `MessageHeaders.CONTENT_TYPE` logic to the `fromHeaders`

Performance Improvements

Remove toLowerCase() calls within loop of `shouldMapHeader()`.

Pre-build lower case versions of arrays.
Update SPR 4.1, AMQP 1.4 M1, Retry 1.1.1
INT-1198: WebSockets: Server Side

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

INT-1198: WebSocket: Add namespace support

Polishing components according to the namespace support experience

Parser for `<server-container>` and tests

INT-1198: Add parser tests for `<int-websocket:outbound-channel-adapter>`

Introduce `use-broker` on server side

Polishing according PR comments

`What's New` note
INT-3510: Fixed 'missing INT_MESSAGE_SEQ' error

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

There has been an error in schema creation scipt for message store on postgresql database:

The statement for creating sequence 'INT_MESSAGE_SEQ' was executed AFTER creating the table that actually uses this sequence
which resulted in sequence not found error.

Further problem was that the the corresponding index 'MSG_INDEX_DATE_IDX' in creation script does not match the index name
'INT_CHANNEL_MSG_DATE_IDX' in drop script. Therfore an error occurred when executing drop schema script for postgresql.

Fixes:

1.Moved creation of sequence 'INT_MESSAGE_SEQ' to first line to be executed before creating the corresponding table
2.Renamed index 'MSG_INDEX_DATE_IDX' to 'INT_CHANNEL_MSG_DATE_IDX' in create script to make drop script work again
On branch INT-3510
Whats-new: Move Boon note to the `new-components`
[artifactory-release] Release version 4.1.0.M1
[artifactory-release] Next development version
Fix ListenableFuture Docs

s/Thread/String/
INT-3500: Consider to add "error-channel" to the <enricher>

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

* add 'error-channel' to the <enricher> component
* delegate errorChannel to the internal gateway in ContentEnricher
* added tests for xml based and java based enrichers with error channels

INT-3500: Consider to add "error-channel" to the <enricher>

* Fixed typos and comments
* Reworked xml integration test to use the outputChannel and increased timeout
* Added overview in whats-new doc

INT-3500: Consider to add "error-channel" to the <enricher>

* Ensure requestChannel is set if an errorChannel is set
* Increased timeout to fix unit test
* Added details to content-enricher ref doc

Polishing
INT-3518: Upgrade versions and some cleanup

JIRA: https://jira.spring.io/browse/INT-3518
INT-3515: Fix Some WebSockets Issues

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

Change test suite to the Tomcat according IO

INT-3515: IllegalStateException for the `WebSocketInboundChannelAdapter`, when `useBroker = true`, but there is no Broker Relay in the Context
INT-3522: MQTT XSD: Fix client-factory attr type

JIRA: https://jira.spring.io/browse/INT-3522
INT-3511: Document WebSocket Support

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

Add note about Broker destinations

Doc Polishing

INT-3511: Fix 'useBroker' Docs and provide compatibility with SF 4.1.1
INT-3524 Fix Tooling MessageChannel References

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

A number of references (expected-type) still referred to
the Spring Integration 3.0 MessageChanel.
INT-3526 Used Expanded URI In Exception Message

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

Previously, the URI in the exception message is the raw
URI with placeholders, if present.

Use the expanded URI in the message instead.
INT-3512: Add `<advice-chain>` to the Aggregator

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

INT-3512: Fix typos

INT-3512: add `expire-` prefix to the advice sub-elements

INT-3512: Mark `AggregatorWithCustomReleaseStrategyTests` as `LONG_RUNNING_TEST`

Doc Polishing
INT-3527: WebSocket and 'o-c-a' Improvements

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

* `WebSocketInboundChannelAdapter` now handles `CONNECT` STOMP message and sends `CONNECT_ACK` message to the `WebSocketSession` immediately
* `ExpressionMessageProducerSupport` implementations now checks the result of `expression` and if it is a `Message<?>` it is sent to channel without creating a new one
which previously wrapped that `Message<?>` as the `payload`.
* Add `<script>` support to the `<outbound-channel-adapter>`
* Upgrade to the SF 4.1.1
* Add appropriate notes to the Docs
INT-3528 Use Collections min and max methods where appropriate

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

Use `min` and `max` methods instead of sorting an entire collection to get the minimum or maximum element.

Change other inline `Comparator<?>`s to the `final` fields