John Mayer to play charity gig to raise money for veterans