British runner Josh Kerr broke a 27-year-old world record for distance by running a mile in 3 minutes, 42.66 seconds at a Diamond League meet in London Stadium.