Adding more test cases.
Fixing some bugs in our constraints. These bugs are mainly due to inconsistencies between llvm's reference manual and the actual llvm implementation. I am also adding a TODO item for a contraint that does not capture what we really want.
Fixing a bug with immediate refmodes. If two immediates were in the same instruction and had the same value, they were getting the same refmode.