Physics of Solar Cells: From Basic Principles to Advanced Concepts