Currently `std::hash<Emplaceable>::operator()` relies implicit conversion from `int` to `size_t`, which makes MSVC compelling. This PR switches to use `static_cast`. In `flat.map/flat.map.access/at_transparent.pass.cpp`, there's one value-discarding use of `at` that wasn't marked `TEST_IGNORE_NODISCARD`. This PR adds the missing `TEST_IGNORE_NODISCARD`.