Joe Biden agrees to debate Donald Trump after weeks of uncertainty