dxva2: addref the d3d surface to protect it, where appropriate.
dxva2: re-init decoder on get_format callbacks

This allows re-initing the decoder earlier in the callchain, and avoids
stability issues due to a late re-init.
dxva2: flush the decoder in copy-back mode as well

Some GPUs don't seem to like "old" surfaces and crash when trying to read
from them, so its safer to just discard them - during a frame size change,
its unlikely to notice 2-3 dropped frames anyway.