handle rpn item pointers with a shared pointer class

all instances of "RpnItem *" were replaced with RpnItemPtr, which is
an alias for std::shared_ptr<RpnItem>
- generally RPN item pointers as arguments were changed to a reference
  (so that the pointer is not copied unnecessarily incrementing its use
  count before and decrementing after the function call)
- RPN items no longer need to be deleted
- RPN item constructor changed to use initializers
- RPN list class no longer needs a clear function
  (RPN items now automatically deleted)
- allocated RPN item attached array changed to standard vector
  (which will automatically delete any attached RPN items)
  (count member removed since vector has the size)
  (RpnItemPtrVector alias added for std::vector<RpnItemPtr>)
- translator output append function simplified
  (no caller was using the attached argument, so it was removed)