British runner Josh Kerr has broken the 27-year-old world record for the mile in front of a sell-out crowd in London.