Fix portability issues in <random> tests.
Three tests were asserting equal() after shuffling a sequence, which assumes the exact behavior of libc++'s implementation. To be portable, yet retain some level of validation, I'm marking the equal() checks as libc++ specific, but adding unconditional is_permutation() checks.
Additionally, one test was assuming libc++'s choice of default_random_engine, which isn't guaranteed by the Standard. Mark that assert as libc++ specific.