improve toString
Some basic polynomial clean up.

This commit does a bunch of small house-keeping tasks:

1. Renames PolyTerm.scala to Term.scala
2. Moves Order[Term[C]] into Term's companion
3. Rewrites some sparse/dense methods to more efficient forms
4. Adds nth() method to get nth coefficient
5. Improve equals efficiency
6. Unify equals/toString

These changes should help improve the performance of many dependent
methods (although unfortunately they probably won't speed up many of
the places we're losing to commons math).