Merging Consistency Predicates to the Fenix Framework 2 branch.

  * This commit does not yet compile, work in progress.
Replaced System.out.println with SLF4J Logger calls.
Minor Change: Replaced calls to Transaction.beginTransaction()
Bug Fix: JVSTM/OJB Backend can now properly handle relations to the DomainObject interface.
Refactor: DomainMetaObject is now connected to the DomainObject interface, instead of AbstractDomainObject.
  * DomainMetaObject now features static methods allowing the user to get/set the MetaObject for any given DomainObject.
Minor Change: DomainMetaClass SQL Queries now point to the correct tables.
Minor Change: Added getDomainClassRoot to BackEndId.

  * The programmer can now ask for the runtime Domain Class Root.
[Consistency Predicates] Minor Change: Renamed some methods and
re-written some javadoc (should be semantic preserving)
[ConsistencyPredicates] Minor Changes: Added some comments and
refactored some code (semantic preserving)
[RepositoryBootstrap] Refactor: Extracted the code that deals with the
DB lock to the DbUtil class, which now has a runWithinDBLock method.
Merge branch 'big-refactoring-2012' into feature/consistency-merge

Conflicts:
	core/src/main/java/pt/ist/fenixframework/backend/BackEndId.java
	dml-compiler/src/main/java/pt/ist/fenixframework/dml/CodeGenerator.java
Fixed Compilation issues that have arisen with the merge.
Minor Change: Also process Atomic annotations inside the JVSTM/OJB Backend.
Added Service Loader infrastructure to support Consistency Predicates
  * Added Service declaration
  * Added implementation of the service to the JVSTM/OJB Backend
First step towards extracting the Consistency Predicates code to its own module.

  * Removed the CPs DML from the JVSTM/OJB backend, moved into the CPs Module
  * Moved the CP classes to the CPs module.
Corrected imports for Consistency Predicate classes.
Refactored some Backend-specific methods in the Consistency Predicate module as abstract methods in ConsistencyPredicateSupport.
  * Moved the implementation of the methods to the JVSTM/OJB implementation
    of ConsistencyPredicateSupport.
Extracted backend-specific features in the ConsistencyPredicates module.
  * Implementation moved to the JVSTM/OJB implementation of CPSupport.
Extracted the generation of Multiplicity Checks to a Code Generator within the Consistency Predicates module.
[Consistency Predicates] Minor Change: Added missing javadoc
[Consistency Predicates] Refactor: Renamed a few methods in the
ConsistencyPredicateSupport API. These methods now refers to a batch of
existing object ids to return.