COMETD-512 WebSocketTransport should close the connection when expiring.

When a message expires due to maxNetworkDelay, the connection
is now closed with message 'Expired'.
COMETD-513 - Client-side half-closed connections should discard server messages.

The implementation now uses a different WebSocket endpoint per
connection, so that an old endpoint can detect whether it should
discard messages (because they belong to a closed connection).
Removed messageId parameter from ServerSession.deliver(),
in line with what already done for ServerChannel.publish().
Modified signature of service methods invoked by AbstractService
to be in line with what done when using annotations.
COMETD-511 - Ack extension may lose messages.

Fixed race in the new implementation, where a thread could read
the wrong batch number and send it in the /meta/connect response.
Merged branch '2.8.x' into 'master'.
COMETD-513 - Client-side half-closed connections should discard server messages.

Improved the implementation to maintain a current delegate object at the transport
level, and by checking whether operations are performed on the same delegate.
If they are operating on a different delegate, they are not performed.
This allows for failures of a batch of messages to not interfere with reconnections
that have created a different delegate instance.
Merged branch '2.8.x' into 'master'.
Cosmetics.
Merged branch '2.8.x' into 'master'.
Initializing _webSocketSupported in the constructor,
since accept() may be called before init().
Clarified logic to take the queue: it is taken during /meta/connect
processing only if metaConnectDeliveryOnly is true.
Merged branch '2.8.x' into 'master'.
Changed server-side processing order: now extension's send*() happens before DeQueueListeners in WebSocket too.
Fixed abort() method to abort only once.
COMETD-520 - Batch replies of batched requests.

Now batching replies on the server and sending them as a single
WebSocket message.
Backported CometD 3 HTTP server transport in order to have the same
processing as the WebSocket transport, in particular regarding the order
of invocation between extension's send*() and DeQueueListeners.
Merged branch '2.8.x' into 'master'.
Added support for batched writes in the JSR 356 implementation.
Improved load test tools.