Class AbstractLazyEncodedNamedInteger represents a NamedInteger in which
bit-fields within the named integer are also represented in a decoded form,
with conversions between the two forms done lazily (when first needed).
Having a decoded representation of the state is convenient if the positions
of fields in the encoded representation can vary depending on the values of
other fields that might not have been supplied yet.
For example, the presence/absence of optional fields,
and the lengths of variable-length fields,
can both affect the positions of later fields.
Once an object has been marked read-only, both encoded and decoded forms can co-exist.
protected AbstractLazyEncodedNamedInteger(byte data,
Constructs a new AbstractLazyEncodedNamedInteger from part of given network-encoded data.
The part starts at index start and is len bytes long.
The state is in the encoded form:
it is not decoded and might not be decodable.