Zone.add(): prevent parent loops and print error
:prevent parent loops and print error in

Also add the convenience methods isAncestor(Zone) and removeFromParent()