video_out.c: Fix a minor memory leak
The code that loops over possible video output drivers and tries to
find a working one does not free and reallocate the 'struct vo' if a
driver's preinit() call fails, but just overwrites the same struct
instead. This means that any memory the failing driver allocated as a
talloc subcontext will not be freed immediately. This is not even a
real leak as the memory will be freed once the VO is closed, but it's
still nicer to free things immediately. Add talloc_free_children() to
free any such talloc subcontexts that were created during the failing
preinit().