Add first draft of ALPs implementation.

In this implementation each node contains a list of outgoing edges.
Change implementation of ALPs domain.

In this implementation edges are separated by nodes.
Fix Soot bugs which came out with last changes.
Add new operations for ALPs and first draft for union.
Fix to ordering and union for ALPs.
Add ALPs domain to the user interface.
Add partial implementation of the connect method for ALPs.
Add a DisjointSet implementation in the util package.
Add the intersection method for ALPs.
Add implementation of connect for ALPs (although I known it is not correct).

Moreover, complete support for ALPs in Soot object analysis
Fix operations of ALPsDomain.
Fix SootObjectModel and SootClassReachableAnalysis.

This has probably broken other test. Check them.
We still need to decide how to deal with arrays and interfaces.
Add test suite for ObjectModel and SootObjectModel.
Change name of lt method in ObjectModel for greater coherence.
Fix test classes for JVMSootSuite and SootObjectModelSuite.
Improve ObjectModel API and factor out common traits.
Modify SootClassReachableAnalysis to support arrays.

It should also be faster now.
Introduce support for interfaces in SootTypeReachableAnalysis.
Merge SootTypeReachableAnalysis with SootObjectModel.
Fix SootObjectModel.

If there are no bugs, now it should correctly support arrays, interfaces
and primitive types.