Simplify translation implementation

What needs to be changed?

The current inner workings of how a (possibly) translated value is 1. found and 2. retrieved is too complex. My main concern is the function getFieldValueTranslation which was implemented by me (3-4 weeks ago) and I have to admit that I already can not remember how this is working. It is so complicated that maintaining efforts it will take way to much time.

Proposed changes

Simplify the procedure. Here's how:

  1. Utilize OCType to safely access top level object (as already done)
  2. Get a completely translated version of the top level object (possibly from a lru cache as it will need a deep copy)
  3. Utilizing the Proxy and its get() handler to retrieve the keypath to the 'wanted' value translation
  4. Evaluate the keypath on the completely translated object

Do the proposed changes impact current use cases?

The time needed to retrieve values will depend on cache effects and the time it takes to create deep copies of the objects. There are instances of SCFloorss in the test files that are ~ 400 KiB. When retrieving a lot of those with a lot of cache misses this could take to much time.