erts: Refactor the ASSERT macro

Introduce unconditional ERTS_ASSERT
and use that for both ASSERT and ASSERT_EXPR.
erts: Remove ASSERT_EXPR macro
erts: Prepare erl_mmap with tree structures for free seg storage
erts: erts_mmap supercarrier management and erts_mseg usage

* Coalescing and trimming of free segments in supercarrier
* Management of super aligned and super unaligned areas in
  supercarrier
* Management of reservation of physical memory
* erts_mseg usage of erts_mmap
erts: Save one word in ErtsFreeSegDesc

by putting red/black color bit in 'parent' pointer
erts: Remove HARD_DEBUG flags for tree traversal
erts: Add build_free_seg_list
erts: Use rbt_foreach_node to check_tree
erts: Optimize rb-tree operations by "caching" parent ptr
erts: Add __func__ to ERTS_ASSERT macro
erts: Cleanup erl_mmap
erts: Improve erts_mmap out of free descriptor management
erts: Add mmap argument to erts_debug:get_internal_state
erts: Fix ASSERT bug and void* arithmetics
erts: Sort tree in super aligned sizes (SA_SZ_ADDR_ORDER)
erts: Allow page aligned erts_munmap()
erts: Add documentation for +MMsc* system flags
erts: erts_mmap improved free seg desc management
erts: Refactor rbt_insert in erl_mmap
erts: Add HARD_DBG_MSEG