Add an instruction abstraction and visitor.

Change-Id: I5dc935831471296b6db1affef6e7ddcdddc82dde
11 files changed