* Reproduced with cluster sample.
* auto-down=45s
* node1 and node2 joins
* suspend node2 (kill -STOP)
* node1 removes and quarantines node2
* resume node2 (kill -CONT)
* node2 receives heartbeat response from node1, which
is not expected since node2 is supposed to be quarantined
* the reason is that the quarantine is overwritten by gating
* #20622: add a paragraph to HTTP Model doc explaining raw-request-uri-header flag
* raw-request-uri-header flag - better description in docs
* fix typo: it's -> its
* fix typo: requests -> request's
* make it possible to use external Aeron media driver, #20588
* on my machine the MaxThroughputSpec maxed out all 8 cores completely,
and when using external media driver it is much better and easier to
find the actual bottlenecks
* aeron.properties for external media driver
* we don't want to include the full origin address in each message,
only the UID
* that means that the restarted receiving system can't initate a
new handshake immediately when it sees message from unknown origin
* instead we inject HandshakeReq from the sending system once in a while
(1 per second) which will trigger the new handshake
* any messages that arrives before the HandshakeReq are dropped, but
that is fine since the system was just restarted anyway
* note that the injected handshake is only done for active connections,
when a message is sent
* also changed the UID to a Long, but there are more places in old remoting
that must be changed before we actually can use a Long value
fix lost first message, #20566
* the first message was sometimes dropped by the InboundHandshake stage
because it came from unknown origin, i.e. the handshake had not completed
* that happended because the ordinary messagage arrived before the
first HandshakeReq, which may happen since we sent the HandshakeReq
over the control stream
* this changes so that HandshakeReq is sent over the same stream, not
only on the control stream and thereby the HandshakeReq will arrive
before any other message
* always send HandshakeReq as first message
* also when the handshake on sender side has been completed at startup
* moved code from preStart to onPull
* because FQCN can become a problem for rolling upgrade scenarios
where you want to rename serializer classes
* also renamed classManifest to manifest because it doesn't have
to be class names
* new trait ByteBufferSerializer with fromBinary and toBinary
methods that takes ByteBuffer, this can be mixed in to
existing serializer without breaking compatibility
* implement the ByteBufferSerializer in the ByteArraySerializer
* minor adjustment of the class manifest cache
* CodecBenchmark that tests encode, decode and combined
encode + decode
* refactoring of codec stages to make it possible to
run them without real ArteryTransport
* also fixed a bug in inbound stream for large messages,
it was using wrong envelope pool