This patch adds "Set Render focus" to the RenderEngine API and implements it in Cycles.
Generally, the task of the function is to allow users to specify areas that they want the renderer to focus on
by clicking into the rendering image with Ctrl held down. This is a bit vague on purpose to allow different engines
to implement it as it is suitable for them.
The Cycles implementation reacts to this function by reordering the tiles so that the origin of the Circle and
Hilbert Spiral patterns now is at the clicked position. This allows users to specify which areas should be processed
next for a quicker preview and to allow to check specific off-center areas before the rendering would normally reach them.
The UI side is loosely based on T37220.
ToDo: BI support!
Also includes (would be committed separately, but not worth opening a second diff):
Cycles: Move Hilbert Spiral generation to separate function, deduplicate tile generation
The Hilbert Spiral code is now separated from the tile generation code, which allows to
handle all tile orders in a single loop and therefore deduplicate some code.