Easley pleads guilty to campaign finance violation