RecSplit: Minimal Perfect Hashing via Recursive Splitting