Hilbert.py updated with symbol factory.

hilbert.py has been completely rewritten to accomodate the new scheme
of symbol factory for each quantum number. Now each quantum number
object can be consisdered as a symbol factory where you can query for
symbols. In this way, all the symbols for the quantum number can be make
to refer to the same object in the memory.