Structural Patterns and Generative Models of Real-world Hypergraphs