Tesco has withdrawn a 'deeply offensive' Christmas card and apologised following a backlash from a Scots charity.