obj-info changes

tl;dr: Removes efficiencies and adds temporary variables, removes more mode flags.

The main aim here is to split out gathering the information about digging, light, etc from the outputting of descriptions to screen.  This makes the description code more readable, but doesn't affect the querying code that much.  There is the odd place where it is simpler though.

Having done that, it became more obvious that we could do without the OINFO_EGO and OINFO_DUMMY flags if we re-used the KNOWN_FAKE flag already being used to indicate faked lost artifacts for the knowledge menus.  Doing this means you can tell whether the item is a real item or just an ego template, which is a bit nicer.