AOM_QM: redesign matrices and support CB_4X4 and RECT-TX.

All matrices are derived by subsampling 32x32 and 32x16 matrices.
Inter and intra matrices now use the same matrix set.

BUG=aomedia:520

AWCY results for default setting (qm-min=5, qm-max=9):

  PSNR  | PSNR Cb | PSNR Cr | PSNR HVS | SSIM  | MS SSIM | CIEDE 2000
   2.75 |  7.98   |    -    |  -3.52   |  0.73 |   -2.21 |   4.22

Change-Id: I8414d19eaf50cfe80d4fe2290da6cdf4ebb406cb
diff --git a/av1/common/quant_common.h b/av1/common/quant_common.h
index 3f44242..f28ffe7 100644
--- a/av1/common/quant_common.h
+++ b/av1/common/quant_common.h
@@ -29,11 +29,11 @@
 // Total number of QM sets stored
 #define QM_LEVEL_BITS 4
 #define NUM_QM_LEVELS (1 << QM_LEVEL_BITS)
-/* Offset into the list of QMs. Actual number of levels used is
-   (NUM_QM_LEVELS-AOM_QM_OFFSET)
-   Lower value of AOM_QM_OFFSET implies more heavily weighted matrices.*/
-#define DEFAULT_QM_FIRST (NUM_QM_LEVELS / 2)
-#define DEFAULT_QM_LAST (NUM_QM_LEVELS - 1)
+/* Range of QMS is between first and last value, with offset applied to inter
+ * blocks*/
+#define DEFAULT_QM_FIRST 5
+#define DEFAULT_QM_LAST 9
+#define DEFAULT_QM_INTER_OFFSET 0
 #endif
 
 struct AV1Common;
@@ -54,9 +54,9 @@
 }
 void aom_qm_init(struct AV1Common *cm);
 qm_val_t *aom_iqmatrix(struct AV1Common *cm, int qindex, int comp,
-                       int log2sizem2, int is_intra);
+                       TX_SIZE tx_size, int is_intra);
 qm_val_t *aom_qmatrix(struct AV1Common *cm, int qindex, int comp,
-                      int log2sizem2, int is_intra);
+                      TX_SIZE tx_size, int is_intra);
 #endif
 
 #if CONFIG_NEW_QUANT