make polyroots more robust

* fix tolerance calculation

We now set the tolerance `tol` directly equal to `ctx.eps`. This is the right
way to do it, since if more working precision is needed, the user needs to
assign the `extraprec` argument.

* use `extraprec` argument

Previously this argument was not used at all by a mistake and instead the
default value 10 was assigned directly.

* chop small numbers in "cleanup" mode

Previously only small real or imaginary parts were chopped. But if abs(x) is
close to zero, we want to chop this case as well.

* Raise NoConvergence error if convergence is not achieved

* always refine all roots

Previously if the given root was already converged, it wasn't refined. But this
seems to increase the number of iterations needed to converge considerably.
Add a test for polyroots
Add a test for NoConvergence
Use +ctx.eps instead of ctx.eps*1
Use extraprec context manager

Instead of try/finally blocks.
Use workdps context manager in the test
polyroots: Improve documentation

We did few changes here and there and added a new section about how the
precision works.
Merge pull request #15 from certik/polyroots

Make polyroots more robust
polyroots: clarify a docstring about extraprec
docs: add a missing word
Merge pull request #19 from certik/docs

polyroots: clarify a docstring about extraprec
Fix line endings handling in git

See [1] for more information.

[1] https://help.github.com/articles/dealing-with-line-endings
Normalize line endings
Merge pull request #20 from certik/line-endings

Fix line endings
Update a couple of URLs in README.rst
convert plot code to a proper script
Enable doctests in Travis-CI
Change imports for optimization module
Fix steffensen doctest
Fix doctest in test_pow_epsilon_rounding