intel: Add multisample scaled blitting in blorp engine

In traditional multisampled framebuffer rendering, color samples must be explicitly
resolved via BlitFramebuffer before doing the scaled blitting of the framebuffer.
So, scaled blitting of a multisample framebuffer takes two separate calls to
BlitFramebuffer.

This patch implements the functionality of doing multisampled scaled resolve using
just one BlitFramebuffer call. Important changes involved in this patch are listed
below:
1. Add fractional scale/offset capability.
2. Modify blorp setup code to handle scaled blits properly.
   - Do register allocation for UD and float registers.
   - Use float registers to do scale / offset texture coordinates.
   - Change offset computation to consider float coordinates.
   - Round the scaled & offset coordinates down to integer. This is automatically
     done by just moving the values to UD registers. We don't need separate RNDD
     instructions here.
   - Make relevant changes to ensure correct blitting of stencil / depth buffers.
3. Linear filter is not yet implemented in blorp. So, don't use blorp engine to do
   single sampled scaled blitting.
4. if INTEL_DEBUG=blorp is set, recompile the blorp shader to dump the native code
   for blorp blit. This will not effect performance but assist in debugging.

Note: Support of multisample scaled blits on gen7 is still untested. I'll soon
finish the testing on gen7 and update the patches if required.
i965: Enable ext_framebuffer_multisample_blit_scaled on intel h/w

Note: Support of multisample scaled blits on gen7 is still untested. It should
work without any changes.

fix