Celtic retain Scottish Premiership title with win over Hearts