Extend beta-reduction examples.
Extend dead-code examples.
Add IO flag to SymbolCategories, refactor to return SC.

Also ensure that all relevant effects are returned, rather than those
attached to specific symbols.
Write read-only query for simplification.
Get lambda optimization to work with SymbolCategories.
Add assignment case for freeVariables.
Enable dead-code elimination by default.