Genetic Polymorphism in Heterogeneous Environments