Add stuff to SymbolTable

It's helpful to be able to remove things from the `SymbolTable` so that tests can be side-effectless, and also to have a version of `define` that passes silently if the given implementation is already in the `SymbolTable`.