Generating Synthetic Electronic Health Record (EHR) Data: A Review with Benchmarking