London Fletcher to retire at end of season