Base class that specifies methods for getting access to
Node instances (newly constructed, or shared, depending
on type), as well as basic implementation of the methods.
Designed to be sub-classed if extended functionality (additions
to behavior of node types, mostly) is needed.

The only argument to this constructor is a boolean telling whether
DecimalNode instances must be built with exact representations of
java.math.BigDecimal instances.

This has quite an influence since, for instance, a BigDecimal (and,
therefore, a DecimalNode) constructed from input string "1.0" and
another constructed with input string "1.00"will not be
equal, since their scale differs (1 in the first case, 2 in the second
case).

Note that setting the argument to true does not
guarantee a strict inequality between JSON representations: input texts
"0.1" and "1e-1", for instance, yield two equivalent
BigDecimal instances since they have the same scale (1).

The no-arg constructor (and the default instance) calls this
constructor with false as an argument.

Factory method for constructing a wrapper for POJO
("Plain Old Java Object") objects; these will get serialized
using data binding, usually as JSON Objects, but in some
cases as JSON Strings or other node types.