refactor internal state abstraction

Explicitly distinguish WindowState from TableState. WindowState is a storage for maintaining tuple windows. TableState is used for keeping intermediate computation results. the abstraction is not fully completed and requires further development.