BATCH-2050: Added doUpdate method and made update methods final

As of 2.2.0.RELEASE, CGLIB became the default for the step scope.  In order for the state of the ItemReaders to be consistent across ItemReader#read(), ItemStream#open, ItemStream#update, and ItemStream#close they must be either final or not.  To enforce this, the implementations of these methods have been made final with a do* for each method.