MNG-5553 reworked dotted expressions interpreter

Introduced state machine to correctly parse mapped property keys
and likely other cases where original code misbehaved. Added more
unit tests to cover more legal and illegal expressions.

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>