Implement ets:take/2

This new ETS BIF returns and deletes objects from tables.
erts: Make erts_printf work with non-blocking

Now that stdout can be set as non-blocking by the ttsl driver
we can no longer use putc and friends for the stdout/stderr
streams. Therefore we fallback on write.

OTP-12239
erts: Optimize ets:lookup and ets:take for bags

by reducing number of iterations through objects with matching key
crypto: use EVP for AES-CBC

This enables the use of hardware acceleration for AES crypto
on newer Intel CPUs (AES-NI), among other platforms.
Replaced "Endianess" with "Endianness" everywhere
erts: Add compile time assert ERTS_CT_ASSERT

and usage
erts: Start compilation of beam_emu earlier
eldap: Clarifies documentation for start_tls and search
erts: Allow cpu_timestamp tracing for Linux
fix failed conflict resolution
add missing release notes
Merge branch 'marcus/fix-eldap-notes' into maint

* marcus/fix-eldap-notes:
  add missing release notes
Merge branch 'maint'
Merge branch 'hans/eldap/doc_fixes/OTP-12354' into maint
Merge branch 'maint'
erts: Make sure IOV_MAX is enforced for writev
Merge branch 'lukas/erts/non-blocking-shell'

* lukas/erts/non-blocking-shell:
  erts: Make sure IOV_MAX is enforced for writev
  erts: Make erts_printf work with non-blocking
Merge branch 'lukas/erts/cpu_timestamp_linux/OTP-12366'

* lukas/erts/cpu_timestamp_linux/OTP-12366:
  erts: Allow cpu_timestamp tracing for Linux
erts: Fix big-endian issue with printf_putc

On little-endian machines, doing &int will give the smallest
byte which is what we want to give to write. But on big-endian
it will give the highest byte, which will always be \000 here
which results in write never doing any writes.

So we have to cast c to an unsigned char before passing it to
write.
Merge branch 'lukas/erts/non-blocking-shell'

* lukas/erts/non-blocking-shell:
  erts: Fix big-endian issue with printf_putc