China expels Canadian diplomat from Shanghai