Add experimental NIO2 connector

Switch the default connector back to NIO1

Remove forgotten debug.

- Fix socket <-> processor association when a read for the request line is pending.
- Go back to a more conventionnal accept thread in the end, it's simpler (although it did highlight the first issue somehow).
- Use a separate thread for timeouts since the acceptor is more conventional.
- Notice in some tests some issues with the blocking flush when ending a request, so add some code to make it wait for pending writes.

Improve on some non blocking IO issues, still working on output corruption in the test case

Non blocking error handling and cleanups.

- Fix upgrade init (and remove the hack).
- Fix input flip state in upgrade mode.

Remove author tags and cleanup.

Set additional properties through introspection on the endpoint.

Remove the hacks and fix corruption.

Use awaitBytes on comet long poll.

Sync the two input methods (blocking won't need it, but it shouldn't hurt too much).

Fix some AJP issues, not done yet.

- Fix timeout with AJP (was -1).
- Use awaitBytes for non blocking reads as it is difficult to keep the processor around without refactoring.

Add another experimental mention in the docs.