mesa: Implement ext_framebuffer_multisample_blit_scaled extension
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.
i965: Enable ext_framebuffer_multisample_blit_scaled on gen6

Support of multisample scaled blits on gen7 is still untested. It'll be
enabled separately.