roots should use the Matlab ordering convention, ignore leading zero coefficients, take AbstractVector arguments, always return a numeric Array, detect more error conditions, and not leak memory on an exception