Improve Extension Error Handling

A variety of wonderful improvements to how roots handles errors in extensions, as well as more thorough testing for this aspect of roots.