Add new method ucl_array_merge

Merges the contents of an array into an existing array
This could leave passed `elt` in an inconsistent state, when a part of the object is in the array and another part is not. However, `ucl_array_append` can return `false` if and only if either `top` or `elt` are NULL (the first is incorrect according to the function's description though).