Array concat function

This PR implements an array concat function that supports array-to-array, element-to-array, and array-to-element concatenation. 

```
select ARRAY [1,2] || ARRAY[3];
select 1 || ARRAY [2,3];
select ARRAY [1,2] || 3;
   _col0
-----------
 [1, 2, 3]
(1 row)
```
This line is needed to fix an issue when resolving function call matches in ``Signature.matchAndBind()`` for calls like concat(array<array<bigint>>, array<bigint>)