Using a vector of unique_ptr to manage contexts.

We previously used a linked list with pointers to parse and execute
contexts; now we have a vector of unique pointers.