George Galloway wins Rochdale in by-election mired in controversy