Improve "remove_unused" transformation
When encountering an axiom with a dependency annotation, we store the ids used by the axiom in a map; when the dependent symbol then becomes used, we add all those ids back to the set of used ids.
Fixes #695 (closed)