Paul McGowan's penalty nine minutes from time earned St Mirren a 1-1 draw with Celtic in a controversial match in Paisley.