Fix segfaulting with DXVA2 hardware decoding at player end

If playing content with DXVA2 hardware decoding mythfrontend segfaults
on player end. That's because IDirectXVideoDecoderService_CreateSurface
creates surface_count + 1 surfaces (1 frontbuffer + surface_count
backbuffers) but IDirectXVideoDecoderService_CreateDecoder is created with
surface_count buffers.

Refs #11652

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
Fix Memory Leak in DVXA

According to Microsoft MSDN The CreateSurface? method also adds reference counts to the surface buffers:
 "The method fills the array with IDirect3DSurface9 pointers. The caller must release all of the interface pointers. In addition, the front buffer holds a reference count on each of the back buffers. Therefore, the back buffers are never deleted until the front buffer is deleted."

So I eliminated the additional add of reference counts to all the buffers because this would lead to a Memory leak because our code releases this buffers only once.

Additionally I designed the release of this buffers as SafeRelease? which is recommended by Microsoft:
{{{
Checks whether the pointer is NULL.
Calls Release if the pointer is not NULL.
Sets the pointer to NULL.
}}}

Refs #11652

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>