Root retrieval

This builds on prior commits to support `$` for retrieval of the object itself.

It looks like I might still be adding to my changes, so if this is getting too bulky again, I can see about rolling them up again into a single commit, but besides thinking it may be easier for the average person to follow the changes when done in increments, my own development style (and some health limits to my concentration) makes it hard for me to anticipate all changes in one single commit, so that is why I keep adding.