Diversity-Oriented Synthesis: Basics and Applications