translator: realigned done stack and item functionality

delete open and closing parentheses calls were added to a new done item
destructor so that the these calls would be removed from the done stack
pop and drop functions

the done stack pop function had to be modified to first get the rpn item
from the top of the stack (into a temporary), drop the top stack item,
and then return the temporary rpn item - this prevents a problem where
the destuctor is called twice with the same first and last pointers, one
for the item on top of the stack and one for the temporary done item
created when popping the top item to get the rpn item

the done item replace first and last functions were combined into a
single function, which gets called directly for the top stack item, and
the done stack replace top first last function was removed

(also changed the argument names for the new hold item constructor)