Prince William, Kate charm Canada on royal visit