Hilbert schemes and simple singularities Theta constants, Riemann surfaces and the modular group. An introduction with applications to uniformization theorems, partition identities and combinatorial number theory 