distinguish between returned object and the first object

so we can merge two objects into a third without affecting the originals, also adding a confirm method on objects so that programmers can override the method dependign on their userinterfaces technologies. for #124 #110 #818 #793
distinguish between returned collection  and the first collection

not adding to collections if it already exits (collections are now uniqued automatically if you use the add or set methods)
so we can merge two collections into a third without affecting the originals, also adding a confirm method on collections in case they contain non-fielddb objects that will be overwritten/unmerged. ththe confirm method can also be overriden dependingn on userinterfaces technologies. for #124 #110 #818 #793
adding tests for merge of corpora for  #963 #728