UK Prime Minister Boris Johnson has a long record of making offensive comments about women, ethnic minorities and gay people.