Manage free stacks

With explicit context save/restore we have to manage multiple
stacks. When a context is activated, the existing stack is added to a
per-rep free stack stack. When stacks need to be allocated (for saving a
context) we check for a free stack before actually allocating one.

Change-Id: Iec2bc36450499a232bf22723094c4d71e87ecffc