cb4x4: Don't assume TX units are half MI_SIZE in predict_square_intra_block()

Currently the "transform units" used to measure transform sizes
in some parts of the code are based on the smallest defined
transform size.

cb4x4 currently defines a 2x2 transform size, even when chroma_2x2
is not enabled, which means that the scale of the transform units
was always double that of MODEINFO units.

Several areas of the code were hard-coding this assumption instead
of converting from one to the other using appropriate constants.

Change-Id: I86057b85b7d4cd810d87da28f5eedc5b27597e29
diff --git a/av1/common/reconintra.c b/av1/common/reconintra.c
index bea7b98..2a30f3f 100644
--- a/av1/common/reconintra.c
+++ b/av1/common/reconintra.c
@@ -2420,9 +2420,9 @@
   // the frame bottom edge
   const int yd = (xd->mb_to_bottom_edge >> (3 + pd->subsampling_y)) +
                  (hpx - y - txhpx) - yd_chr_offset;
-  const int right_available =
-      (mi_col + ((col_off + txw) >> (1 - pd->subsampling_x))) <
-      xd->tile.mi_col_end;
+  const int right_available = mi_col + ((col_off + txw) << pd->subsampling_x >>
+                                        (MI_SIZE_LOG2 - tx_size_wide_log2[0])) <
+                              xd->tile.mi_col_end;
   const int bottom_available = (yd > 0);
 #if CONFIG_EXT_PARTITION_TYPES
   const PARTITION_TYPE partition = xd->mi[0]->mbmi.partition;