Spin diffusion in semiconductors