Fix incorrect enum behaviour with common prefixes

:Release Notes:
Fix checking against enum when alternatives are prefixes of another
ones: {"enum": ["Array", "ArrayExt"]} should validate both "Array"
and "ArrayExt", for instance.

:Detailed Notes:
Fix string comparison to check string lengths before resorting to
strncmp(). Weaken enum from "oneOf" to "anyOf" for sake of performance.

:Testing Performed:
Added unit tests for regression.
Run under memory checker.

:QA Notes:

:Issues Addressed:
[GF-44469] pbnjson: Incorrect enum behaviour when one string is a prefix

Open-webOS-DCO-1.0-Signed-off-by: Anatolii Sakhnik <anatolii.sakhnik@lge.com>

Change-Id: Ia0d70f2baccbc3a1dc8f5a611fd9bb2b3c2588c0
Reviewed-on: https://g2g.palm.com/3765
Reviewed-by: Build Verification
Reviewed-by: Anatolii Sakhnik <anatolii.sakhnik@lge.com>
Tested-by: Anatolii Sakhnik <anatolii.sakhnik@lge.com>
Reviewed-by: Alekseyev Oleksandr <alekseyev.oleksandr@lge.com>
Reviewed-by: Mykola Kryvonos <mykola.kryvonos@lge.com>