Gen. John Allen cleared of wrongdoing in Petraeus scandal