basic optimization for unused attributes

still broken for string evals
disable optimizations when string evals happen
use a full peep override instead of just the custom op one

with the custom op peep, the provided oldop is one of the children of
the custom op we're trying to remove, so we can't actually remove the
custom op with all its children this way - we need to modify op_next in
an earlier op to get everything