refactor stacks to reduce dependencies
This change moves stacks to separate structures, renames operators and refactors the implementation to have a clear separation between low level operators and high level ones. This allows us to initialize stacks independently from GC and introduce more loose coupling with the process structure. This is a step factored out from works on green threads and on multiple runtimes and it is a prerequisite for further changes.
Edited by Daniel Kochmański