[Impeller] new blur: limit uvs to blur region (flutter/engine#49299)
This will run the blur passes on a subset of the texture passed into it that will actually be blurred. This is an optimization for backdrop filters.
issue: https://github.com/flutter/flutter/issues/131580
test coverage: devicelab `backdrop_filter_perf_ios__timeline_summary`
## performance results
This results in a 50% reduction in average GPU time in our benchmark, 79% reduction in the "99% percentile".
```
BEFORE
"average_vsync_transitions_missed": 3.889423076923077,
"90th_percentile_vsync_transitions_missed": 4.0,
"99th_percentile_vsync_transitions_missed": 4.0,
"average_vsync_frame_lag": 0.0,
"90th_percentile_vsync_frame_lag": 0.0,
"99th_percentile_vsync_frame_lag": 0.0,
"average_layer_cache_count": 0.0,
"90th_percentile_layer_cache_count": 0.0,
"99th_percentile_layer_cache_count": 0.0,
"average_frame_request_pending_latency": 16654.368333333332,
"90th_percentile_frame_request_pending_latency": 16692.0,
"99th_percentile_frame_request_pending_latency": 16749.0,
"worst_layer_cache_count": 0.0,
"average_layer_cache_memory": 0.0,
"90th_percentile_layer_cache_memory": 0.0,
"99th_percentile_layer_cache_memory": 0.0,
"worst_layer_cache_memory": 0.0,
"average_picture_cache_count": 0.0,
"90th_percentile_picture_cache_count": 0.0,
"99th_percentile_picture_cache_count": 0.0,
"worst_picture_cache_count": 0.0,
"average_picture_cache_memory": 0.0,
"90th_percentile_picture_cache_memory": 0.0,
"99th_percentile_picture_cache_memory": 0.0,
"worst_picture_cache_memory": 0.0,
"total_ui_gc_time": 0.659,
"30hz_frame_percentage": 0.0,
"60hz_frame_percentage": 100.0,
"80hz_frame_percentage": 0.0,
"90hz_frame_percentage": 0.0,
"120hz_frame_percentage": 0.0,
"illegal_refresh_rate_frame_count": 0,
"average_gpu_frame_time": 52.13341346153846,
"90th_percentile_gpu_frame_time": 62.5,
"99th_percentile_gpu_frame_time": 62.5,
"worst_gpu_frame_time": 62.5,
"average_cpu_usage": 69.08979595918369,
"90th_percentile_cpu_usage": 70.4,
"99th_percentile_cpu_usage": 71.699999,
"average_gpu_usage": 100.0,
"90th_percentile_gpu_usage": 100.0,
"99th_percentile_gpu_usage": 100.0,
"average_memory_usage": 118.79942602040816,
"90th_percentile_memory_usage": 138.125,
"99th_percentile_memory_usage": 143.65625
AFTER
"average_vsync_transitions_missed": 2.0,
"90th_percentile_vsync_transitions_missed": 2.0,
"99th_percentile_vsync_transitions_missed": 2.0,
"average_vsync_frame_lag": 0.0,
"90th_percentile_vsync_frame_lag": 0.0,
"99th_percentile_vsync_frame_lag": 0.0,
"average_layer_cache_count": 0.0,
"90th_percentile_layer_cache_count": 0.0,
"99th_percentile_layer_cache_count": 0.0,
"average_frame_request_pending_latency": 16635.025,
"90th_percentile_frame_request_pending_latency": 16715.0,
"99th_percentile_frame_request_pending_latency": 16802.0,
"worst_layer_cache_count": 0.0,
"average_layer_cache_memory": 0.0,
"90th_percentile_layer_cache_memory": 0.0,
"99th_percentile_layer_cache_memory": 0.0,
"worst_layer_cache_memory": 0.0,
"average_picture_cache_count": 0.0,
"90th_percentile_picture_cache_count": 0.0,
"99th_percentile_picture_cache_count": 0.0,
"worst_picture_cache_count": 0.0,
"average_picture_cache_memory": 0.0,
"90th_percentile_picture_cache_memory": 0.0,
"99th_percentile_picture_cache_memory": 0.0,
"worst_picture_cache_memory": 0.0,
"total_ui_gc_time": 1.732,
"30hz_frame_percentage": 0.0,
"60hz_frame_percentage": 100.0,
"80hz_frame_percentage": 0.0,
"90hz_frame_percentage": 0.0,
"120hz_frame_percentage": 0.0,
"illegal_refresh_rate_frame_count": 0,
"average_gpu_frame_time": 25.01558603491272,
"90th_percentile_gpu_frame_time": 31.25,
"99th_percentile_gpu_frame_time": 31.25,
```
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style