test(json): test reading/mapping of json primitives

- tests cases like invoking JSON(true) and JSON('true') resulting in a
  SpinJsonNode that represents the boolean value 'true'
- JSON(String) poses a conflict between mapping and reading; it is resolved
  such that String input is always interpreted as Json, i.e. no mapping is
  applied

related to CAM-2545