John David Sports, which operates the JD Sports chain, has taken over struggling competitor Allsports for £18 million.