HardTests: Synthesizing High-Quality Test Cases for LLM Coding