Improvements to the AttrNode Logic.

AttrNode's need to pump their inner node also when pumping out nodes.
It seems that all inners recursively down to the base case node will
need to pump out nodes when nodes are pumped out at an upper level.

AttrValuePack has been renamed to Attr.
Attr now has a name too.
When added into maps it will it's name as the key, just like the AttrNodes.

We don't quite allow random access to the attrs.
Because this is typically going to be data generated sequentially and
possibly proceduraly as well as from file.  Random access just doesn't make
too much sense in this case. It will likely be faster to generate through
all of them.

We do allow random access to the attr nodes.
This is because they are like directories or folders.
Typically if this is data coming from a file there will jump
tables corresponding to the attr nodes allowing fast access
through the file instead of reading everything sequentially.

Once an AttrNode is created and pumped it will become unmodifible
until deletion.

An override node was also added but it is in the beginning
stages and most of its fnctionality may also be covered by the
Bucket node.