inverse attributes...finally!

looking up inverse attributes (lazy_refs.h) is non-trivial, and figuring out how to took a while. once I got that mostly working, I discovered that it would not work for complex instances because they work differently than I thought. I had to rewrite quite a bit of code, and ended up moving all inverse attr's into a std::map that is a member of SDAI_Application_instance. This allows them to be used for normal instances as well as complex instances.