mnesia: Use chained send_after instead of send_interval

timer:send_interval behaves badly when resuming from sleep on some
platforms. For example, if I sleep for 10 minutes, and have a
send_interval running once per minute, when I resume, 10 messages
will be sent immediately, eliminating the benefit of only running
the work periodically. This is admittedly a separate bug with
send_interval, but the workaround is straightforward, and also
protects from messages piling up in the queue when the work takes
longer than the interval.

This patch fixes piled up error reports on resume from sleep:

** WARNING ** Mnesia is overloaded: {dump_log, write_threshold}

You'll still be warned if mnesia is overloaded, just not repeatedly.

Additionally, erlang:send_after is more efficient than using the
timer module equivalent [1]

[1] http://www.erlang.org/doc/efficiency_guide/commoncaveats.html#id57251
Fix format of mnesia overload message

Using ~p in mnesia overload message could lead to wrong messages.
mnesia_tm overload message contains a list of two numbers (queue length)
example:
instead of:
Mnesia is overloaded: {mnesia_tm,message_queue_len,[100,105]}
it prints :
Mnesia is overloaded: {mnesia_tm,message_queue_len,"di"}

Replacing ~p with ~w fixes the problem as it doesn't try
to detect lists of printable characters
Add separate face for exported functions

Add a separate face for exported functions to erlang mode so that they
are distiguishable at a glance. By default, the face is identical to
that of normal functions and there is also a configuration variable to
inhibit the face in case running this on a low-performance machine is
too slow.
Fix Table Viewer refresh crash on no more existing ets tables
erts: Define max tuple size to 24 bits

Erlang specification 4.7.3 defines max tuple size to 65535 elements
It is now defined to 16777215 elements (24 bits)
erts: Enforce tuple max size on BIFs
test: Refactor away ?line macro in tuple_SUITE

* ?line is not needed anymore and should be removed when
  a test_SUITE is changed.
erts: Use memcpy instead of while in setelement/3

* Measurements suggests that memcpy is a bit faster for small tuples
  and ~50% faster for large tuples. (Linux kernel-3.2.0).
Fix setting of T flag at failover

This seems to have been broken at some point before diameter was
included in OTP, prior to R14B03.
Check for T flag in failover suite
Add discard testcases to failover suite
Fix debug build on threads disabled build
Fix bit set op of non-atomic fallback in atomic API
Merge branch 'rickard/r16/port-optimizations/OTP-10336'

* rickard/r16/port-optimizations/OTP-10336:
  Fix bit set op of non-atomic fallback in atomic API
  Fix debug build on threads disabled build
Merge branch 'egil/enforce-tuple-specification-size/OTP-10633'

* egil/enforce-tuple-specification-size/OTP-10633:
  erts: Use memcpy instead of while in setelement/3
  test: Refactor away ?line macro in tuple_SUITE
  erts: Enforce tuple max size on BIFs
  erts: Define max tuple size to 24 bits
Merge branch 'anders/diameter/tbit/OTP-10619'

* anders/diameter/tbit/OTP-10619:
  Add discard testcases to failover suite
  Check for T flag in failover suite
  Fix setting of T flag at failover
ssh: Added User's Guide framework and minor enhancements
ssh: Add Users Guide and enhance man pages
Merge branch 'pgö/tv-refresh-crash'

* pgö/tv-refresh-crash:
  Fix Table Viewer refresh crash on no more existing ets tables

OTP-10635
Merge branch 'jwh/mnesia_interval_removal'

* jwh/mnesia_interval_removal:
  mnesia: Use chained send_after instead of send_interval

OTP-10636