Fuse tight composer

@bronevet 
There are two ways to implement this. 
1. As you proposed if it is just union across PartEdge (i.e., if we are implementing Intersection of Unions), we can implement a special union abstract object (may be specific to just tight composer) that simply invokes the meetUpdate method of the interface for unioning the information. Its trivial to implement this as we can write a add method that unions thew new object with existing information. Since we are dealing with objects from the same analysis we can afford to do this. Also this will be efficient as we will union only during the construction. Discharging of queries will be trivial as the union is performed already. Here is a problem. Note that TightComposer return Full abstract objects which are special abstract objects. We cannot pass these special full objects to meetUpdate method of analysis implemented abstract objects. We have to anticipate full objects during construction and handle it appropriately. Also we need to know the type of the Analysis object to implement this special union object. For example we need to know if we unioning PointsToML or ConstantPropagationML. I dont know if this would be configurable as we can compose any list of analyses in TightComposer. Is this achievable with just the AbstractObject interface?

2. We modify Combined abstract objects (list collection for abstract objects). Similar to Mapped objects we never store full objects in the list. We store individual objects in this collection and the queries are n^2 as the list will not be aligned and we have to compare item with item on both lists. 

What are your thoughts?