Gunman shoots US consular official in western Mexico