theoradec: fix buffer pool selection and configuration
This fixes a regression introduced by b660f258 ("theoradec: make sure the selected pool accepts the new config").
Originally, theora_dec_decide_allocation() called the base class decide_allocation() first and then modified to pool config when the decoded size was larger than the final frame size.
However, gst_buffer_pool_set_config() failures where ignored which could cause assertion failures in theora_handle_image() later.
This was fixed by the commit mentioned above by doing gst_buffer_pool_set_config() first, remove the pool if it failed and then call the base class decide_allocation().
But the base class decide_allocation() overwrites the pool config again so the changes are lost. The result are assertion failures in other cases.
So do the base class decide_allocation() first again. And if gst_buffer_pool_set_config() fails afterwards then remove the pool and call the base class decide_allocation() again to create a new pool.
Fixes #2612 (closed)