It is my opinion that libc++ should never use <cassert>, including in the dylib. This patch remove all uses of assert from within libc++ and replaces most of them with _LIBCPP_ASSERT instead.
Additionally this patch turn LIBCXX_ENABLE_ASSERTIONS off by default, because the standard library should not be aborting user programs unless explicitly asked to.
Does this belong here?