Ticket 512 - improve performance of vattr code
The first part of the fix was incompleted, breaking fix #490.
The problem was that when an entry had no cached virtual attribute, we continued
to call the SP. In fact the cache mechanism supported only one virtual attribute (nsroledn)
and used the 'watermark' (in the entry) to know if the virtual attribute was already evaluated.
Now the virtual cache contains several attributes and we can not rely on only watermark to
know if the attribute was already evaluated.
The fix implements a cache containing all the virtual attributes.
If a virtual attribute is evaluated, its value is store in the cache.
This even if the present value of the attribute is NULL (no Service Provider gave a result).
The meaning of the watermark returns to its origin: it says if the cached virtual values are or not valid
(a change in SP triggers invalidation of the cache).
Reviewed by: Ludwig Krispenz,Rich Megginson
Platforms tested: F18
#490 test case (test integrated in 389 CI tests https://github.com/tbordaz/dirsrvtests)
#512 test case
Flag Day: no
Doc impact: no