Polynomial Exponents Int -> Long Change

Changed polynomial exponent type from Int to Long
Changed name of Poly -> Polynomial to avoid Shapeless ns issues.
Fixed a little bug in Polynomial.show so now we have correct printing,
i.e. swapped around the pattern match order.
Refactored names of implicits to aid scala community's endless brevity
quest!