Various changes and updates. Approaching "good" 1.0 interface.

- It is now possible to move construct generators. Contexts now make a local copy of the `this` pointer when created. This pointer is disseminated (as a Generator**) to the Generator and Yield objects, and updated when a new Generator is move constructed from an old one.
- Simplified the context launch process. There is now only a single function- static_context_base (and its twin, static_context_base_own) instead of a static and member function per context.
- Fixed bug where ScopedStack::stack returned an invalid pointer when it had nothing allocated
- ScopedStack::size now returns 0 when nothing is allocated