make find_key and insert_key take an array index if the object is an array

Make ucl_object_find_key[l] support finding an array index, as well as a key

Make ucl_object_insert_key_common (and by
extension: ucl_object_replace_key, ucl_object_insert_key_merged, etc)
access an array index in place of a key if the object is an array
I see your point, maybe one level further abstraction that does it makes sense.

My point is: why have:
	    if (dst_obj->type == UCL_ARRAY) {
		sub_obj = ucl_array_find_index(dst_obj, strtoul(dst_frag, NULL, 10));
	    } else {
		sub_obj = ucl_object_find_key(dst_obj, dst_frag);
	    }

All over my code, when the API could do the detection for me.

I would propose to change the strtoul a bit, the way Brian Drewery did ucl_lookup_path()
if (top->type == UCL_OBJECT) {
  index = strtoul (c, &err_str, 10);
  if (err_str != NULL && (*err_str != '.' && *err_str != '\0')) {
    return NULL;
  }
  return ucl_array_find_index (top, index);
} else {
  return ucl_object_find_key (top, c);
}

To not break the error detection