Refactor ExecutorVector class

I've made this class to be more object-oriented, making member variables private and providing accessors where needed, and `init`, `execute`, and `cleanup` methods.  

In order to support purging rows when row limits are exceeded, I wanted to be able to execute an `ExecutorVector` without the extra stuff that happens in the normal codepath (like setting state in the `ExecutorContext`), but *with* the stuff that I want (like managing exceptions).  Making `ExecutorVector` into more of an independent class seemed to be the way to go.

I tried to keep the changes down to a minimum here because Mike A.'s pending changes to this area, but I found that tricky since the code here was a little spaghetti-like.  If these changes make it difficult to merge the in/exists work, I'm open to other options.