Expand functionality to catch odd truncates (#585)

Fixes #583

* Changes UndoTruncatedSwitchPass to look for truncates to look for
truncates to non-power-of-2 integer sizes instead of switches on odd
sizes
  * rename pass
  * new logic to update instructions that aren't full rewritten
  * handle mixed input sizes for binary ops
  * handle truncate and zero extend better
* new tests
diff --git a/lib/Passes.cpp b/lib/Passes.cpp
index d7bc38e..499e854 100644
--- a/lib/Passes.cpp
+++ b/lib/Passes.cpp
@@ -55,7 +55,7 @@
   initializeUndoInstCombinePassPass(r);
   initializeUndoSRetPassPass(r);
   initializeUndoTranslateSamplerFoldPassPass(r);
-  initializeUndoTruncatedSwitchConditionPassPass(r);
+  initializeUndoTruncateToOddIntegerPassPass(r);
   initializeZeroInitializeAllocasPassPass(r);
 }