Photonic Design: From Fundamental Solar Cell Physics To Computational Inverse Design