Rename "append" to "join"

We'll also be changing the behavior of the operator to invite less
inconsistency.

Signed-off-by: Casey Dahlin <cdahlin@redhat.com>
Change definition of join

Join now behaves identically to intersection, except when one of the operands
is null, in which case it is equivalent to the other operand. This preserves
the "append" behavior on objects, but no longer functions on lists (acceptable
losses)

Signed-off-by: Casey Dahlin <cdahlin@redhat.com>
Update spec to reflect join changes

Signed-off-by: Casey Dahlin <cdahlin@redhat.com>
Move setup to setup section in intersection test

Signed-off-by: Casey Dahlin <cdahlin@redhat.com>
New (broken) intersection test

Signed-off-by: Casey Dahlin <cdahlin@redhat.com>
Fix use-after-free bugs related to cloning into parent

Signed-off-by: Casey Dahlin <cdahlin@redhat.com>