AttrBucket Improvements with Better Unit Tests.

The AttrBucket has been augmented with a method to enable adding
attributes at arbitrary paths.
This was the main functionality for the Override AttrNode.
Hence the Override Attrnode has been removed.
The other possible benefit for the Override node was that we
would be able to test true on demand generation of the AttrNodes.

Currently when attrs are added at arbitrary paths to the AttrBucket
child AttrBuckets are generated on the fly to records the attrs,
instead of the delayed the child attr creation until later when
it's needed.

The reason why this is currently done is that the structures and
logic to perform this on the Override AttrNode would have been
exactly the same, except for one extra level indirection and delay.