Experimental support for a "progress" thread

The progress thread runs in the back ground (during calls to update())
and periodically drains the task queue - ensuring forward progress even
when no upcxx calls are executing.
Caveats:
- the thread must be started by the user
- the thread only lasts for the current commit epoch
- it is erroneous to call upcxx functions while the progress thread is
  running, and the results are undefined
- support is enabled at compile time with ENABLE_PROGRESS_THREAD

Preliminary tests show improved performance for larger core counts when
using the progress thread, as opposed to simply calling drain() during
bin flushing.
Large documentation cleanup

Motivated by documenting the new progress thread support. Internal data
structures and functions are no longer included in the documentation by
default, and must be requested by adding INTERNAL_DOCS to the
ENABLED_SECTIONS option in doxygen.conf.
Minor formatting correction
Minor doc correction
Cleaned up includes / defines
Revised down sleep time for progress thread

Based on benchmarks on large process grids (16 x 16 for now)