Beleaguered Dundee provide the shock of the Scottish Premiership season so far by beating Celtic at home for the first time in 37 years.