Relation loading

OneX relation loading, ManyToMany is not supported yet.

Notable changes:
* test suite is rebuild a bit, separating test files
* exceptions now inherit AuditException but have different classes (needed for exception that an entity is deleted after revision X), should not add BC except if some people rely on exception message or use get_class() == AuditException instead of instanceof
* an internal cache has been added to audit reader to support circular references (like when you load audited User and it has Groups and Group has Users, Users will be audited too - see test cases).