TO DO
=====
- Put non-exportable functions in sub-context 'Private'
- basis objects that perform automatic house-keeping (removal
  of zero states, removal of empty invariant subspaces, etc.)
   
