Add new method ucl_array_merge

Merges the contents of an array into an existing array
When I didn't make a copy, i got a segfault:

#0  0x0000000800adf3c4 in sbrk () from /lib/libc.so.7
#1  0x0000000800adf7af in sbrk () from /lib/libc.so.7
#2  0x0000000800aeadf5 in free () from /lib/libc.so.7
#3  0x000000080082f835 in ucl_object_dtor_free (obj=0x801826640)
    at ucl_util.c:146
#4  0x000000080082ff15 in ucl_object_unref (obj=<value optimized out>)
    at ucl_util.c:187
#5  0x00000000004028a3 in main (argc=2, argv=0x7fffffffeae8) at uclcmd.c:499

code in question:

    if (root_obj != NULL) {
	ucl_object_unref(root_obj);
    }
    if (set_obj != NULL) {
	ucl_object_unref(set_obj);
    }

line 499 is the unref of 'set_obj', which is the array that was merged into a sub-object of root_obj.

when root_obj is unreferenced, the array elements get disappear, and so when unref is called on sub_obj, it tries to free() a pointer to 0.

When I had the ucl_object_unref() you recommended at the end of array_merge, it caused the segfault to happen when trying to unref() the root_obj

Maybe the right solution is to leave the array that was merged with array_merge as an empty array, rather than trying to unref it, or my solution, to leave it as-is and copy the elements from it.