Changed APIs for putFieldPre, putFieldPre, write, and writePre.

putFieldPre must return the value that is to be stored in the field.
putField must return the value that is the value of the putfield expression.
writePre and write now have access to the old  value.

To get access to the old value of a field, use putFieldPre and do a getfield.  Be careful when you call getfield because you may make an extra call to a getter method.