AC-FOVE: Code refactoring

* Code refactoring to enable better communication between objects.
* Several new classes added
* All existing classes will have to refactored to comply with the new
structure. Obsolete references are being marked with @deprecated, in
order to not break the current code

Everything started in unification process for aggregation parfactors.
I want to avoid to consider all possible cases when unifying two
parfactors, which may be of different kinds. Unification is only the
tip of the iceberg: many operations rely on 'instanceof' operator, a
bad coding practice (as I found out the hard way).

Due to time constraints, I may not be able to leave the code in a
excellent state...