Semiconductor Spintronics: Progress and Challenges