Reorganize domain tests in subpackages.
Prepare reorganization of domain tests in a hierarchy of traits.

This commit includes basic suites common for most domains.
Move all methods related to fibers in the CartesianFibered domain.

Previously, isTop/isBottom/top/bottom where methods in AbstractProperty.
Howerver, the meaning of this methods in the general case when fibers may
not exists is not obvious.
Add the concept of TypedDomain.

A TypeDomain is an abstract domain which depends on an external environment.
Add the concept of ObjectModel.

An ObjectModel is a specification of the way object works in a given
language.
Fix pair sharing test suite.
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.