Change instruction constants to an enum
I did this to make the match in run better. As it was, it was easy to
forget to implement an instruction because of the catchall. From a user
perspective this doesn't change anything.
I forgot to mention that the last commit decreased performance
significantly, I think it made it twice as slow. I didn't have existing
benchmarks for it to check against though. This commit gave a slight
performance increase of 1-9%.