🎉 KUDOS TO philippeitis !!! 🍻
New things
* Different `repr()` output. It now shows the code that can reproduce the object instead of a human-friendly informal representation. The latter remains the output of `str()` (e.g. `Polynomial(1, 2, 3)` vs `x^2 + 2x + 3`)
* Polynomials now support slicing:
python
p = Polynomial(4,3,2,1,0)
p[:3] == [0, 1, 2]
p[3:] == [3, 4]
p[2:4] = [8, 8] now p == Polynomial(4, 8, 8, 1, 0)
* Implemented `__neg__`, `__pos__`, `__sub__`, `__rsub__`, `__isub__`, `__imul__`, `__iadd__`.
Fixed things
* Fixed crash when performing multiplication
* Fixed inconsistency and optimized performance when adding polynomials together
* Various other code improvements