LinkTriggerTest: adjust code style
some pages would not load because PHP's maximum execution time was exceeded, caused by a circular reference in the location tree (#1123)

add database triggers to the EntityLink table
add unit tests: EntityLinkTriggerTest, ObjectCircularReferenceTest, TagTreeCircularReferenceTest
getObjectContentsList: fix circular reference detection
getLocationChildrenList: new function which mimics getObjectContents list
getTagChildrenList: idem
commitLinkEntities: check for circular references
commitUpdateEntityLink: idem
commitUpdateTag: idem, new function replaces tableHandler call
getLocationTrail: exit at a depth of 20, there is probably a circular reference
renderRackspace: idem, when displaying the location tree
renderTagTreeEditor: add is_assignable hidden field to the 'fallen leaves' portlet, form submission failed even before the tableHandler replacement
renderDataIntegrityReport: report circular references for locations, objects and tags
linkObjects: new ophandler replaces tableHandler
updateTag: idem