This commit refactors the SetComponent into an abstract interface and introduces
two separate classes `SingleColumnSetComponent` and `MultiColumnSetComponent`, as
well as related methods such as `visitSingleColumnSetComponent` / `visitMultiColumnSetComponent`.
All Visitors were updated accordingly, and logic for parsing / type-resolving / linting were added
too. The only thing missing is type-resolving for the case where rowValue is of type SubQuery,
i.e.
`UPDATE demo SET (a,b)=(SELECT 2,3)`.