Fix using an uninitialised value.

While using valgrind to investigate bug #20876 it warned about this
issue.

Ported from a6eeac04e5dc863013fa3e5e0b723825ddc4fc08
Make sure cut_surface gets a neutral surface.

Also change its return to an optimised surface. Fixes bug #20876.

From the comment added to the source:
Unlike other image functions cut_surface does not convert the input
surface to a neutral surface, nor does it convert its return surface
to an optimised surface.

Since it seems to work for most cases, rather change this caller instead
of the function signature. (The issue was discovered in bug #20876).
Merge branch 'bug_20876' into 1.12

Fixes bug #20876.