Afghanistan general Stanley McChrystal cleared of wrongdoing