* cleanup `numpy` imports to avoid deprecated functions, add financial functions from `numpy_financial` module, if installed.
* prefer 'user_symbols' when initializing `Interpreter`, but still support 'usersyms' argument. Will deprecate and remove eventually.
* add support of optional (off-by default) "nested symbol table", based on a `Group` object that can be accessed from Python either with dict syntax (ie `aeval.symtable['x']`) or with object attribute access (`aeval.symtable.x`). In addition, symbols can be found by looking first in the top-level symbol table and then in sub-Groups named in `symtable._searchgroups`, allowing for a more hierarchical, nested symbol table. This should be considered experimental and is off by default. The `make_symbol_table()` function gains a `nested=False` argument to control whether to use this option.
* update tests to run most tests with symbol tables of dict and nested group type.
* general code and testing cleanup.