initial work on zero env funs

Completely untested, but have first cut at library/require
overloads, as well as the detaching of non essential objects
from search path
using environment to get around locked bindings
setting up testing packages for zeroenv
initial tests for unitizer_library
check package addition directly on search path
added some unitizer_require tests
initial trim and restore search path

Seem to be working okay, added tests as well
return invisibly
allowing tools:rstudio to remain in search path

Had weird errors when we removed this, even after re-attaching
it, in particular relating to all the frame functionality not
working anymore (e.g. search panel, package viewer).
now re-loading packages with library and not attach

Also added support function is.loaded_package, and a bunch of
other cleanup
substantial test re-org, and is.loaded_package tests
interim commit before changing strategy

Too many issues trying to handle attaches and detaches,
will try to shim attach/detach/etc. with trace
in process of converting to shims

also added S4 object to keep track of changes
adding hooks for new zero env

still work in progress, and definitely not tested
new zero env strategy mostly settled

but not tested at all, major changes to file from
before so that we can rely on tracing rather than
shimming functions
cleaning up search path manip

Unshimming in own function
Zero env reset on search path changes
more clean-up of unnecessary logic in new structure
further zeroenv integration
more robustness around shimming/unshimming

Also, failures don't necessarily cuase stops anymore, as that should be
handled by the unitize code anyway.  Failure to shim shouldn't prevent
unitizer from proceeding.
global obj cleanup, and minor bugfix
library,etc. shimming working mostly

Haven't tested trimming paths or restoring, but
actual adding / removing packages works, and history
seems to be doing stuff right, and the search path
checks pass.