Microsoft: Buying Moats And Growth At A Reasonable Price (NASDAQ:MSFT)