theoradec: make sure the selected pool accepts the new config
If gst_buffer_pool_set_config() fails then the pool will use its old config. This may include different width or height when pic_width/pic_height != frame_width/frame_height. As a result, the assertions in theora_handle_image() will fail.
So check the result of gst_buffer_pool_set_config() and only use the pool if it succeeds. Otherwise let the parrent decide_allocation() create a new pool.