Structured Codes In Information Theory: Mimo And Network Applications