convert nearly all of Instruction to Scala

leaving in Java for now: public fields we access in tight inner loops