Move intra and inter search into their own functions.
Add NxN part_mode coding.
Clean up prediction mode coding.

This was done as preparation for adding NxN intra.

- Monochrome coding was removed as it's not part of the standard.
- No other functional changes.
Rewrite intra prediction mode coding to be simpler.

Should work exactly the same, but with the prediction mode selection done
separately from the binarization it's easier to see that the implementation
is correct.
Start implementing NxN prediction coding.
Clean up SAO encoding.

- Fixes a bug when pic->slice_sao_chroma == false.
Change cu_info.intra into an array to support NxN split.
Add NxN mode selection to search_intra.
Add part size to intra_set_block_mode.
Add NxN to intra reconstruction.
Change the default encoder reconstruction file name.

YUV Toolkit parses the file name for frame size.
Enable NxN.
Try to fix stuff related to NxN intra transform splitting.
Try to implement 4x4 luma transform coding.

- Doesn't work yet so it's disabled.
- Change encode_transform_coeff to accept PU (Prediction Unit) coordinates
  instead of CU coordinates because CUs are 8x8.
Fix encode_transform_tree to handle 4x4 luma.

- Add room to cu_data.coeff_top_yuv arrays for the 4x4 PUs data. Will probably have to do the same to other coeff flags. The flags could also probably be combined as they are a bit redundant.
Improve transform tree coding.

- Clean up code and comment.
- Change terminology to match H.265 specification where possible.
- Move transform splitting for depth==0 out of the coding part. It's not
  possible to do it here anyway because intra reconstruction is different
  if the transform is split.
- Add checking for transform hierarchy depth when coding split flag.
- Fixes bug with cu_data.tr_depth being set. The CU struct was being reused
  for inter coded CUs, which did not initialize the tr_depth.
Move transform unit coding to its own function.
Move chroma transformation and reconstruction to it's own functions.

Just a simple copy and paste with minimal changes.
Fix debug to work for intra and show CU part_mode.
Try to fix intra prediction mode coding for NxN.

- Adjust predictor list to take modes from PUs in addition to 2Nx2N CUs.
- Change intra_get_dir_luma_predictor to take PU index instead of CU index.
- Comment prediction encoding now that I've had to look it up.