refactored to increase maintainability

toString() now calls formatString(false) rather than duplicating it's
logic.
refactor and fraction mode fix

refactored to improve readability/maintainability.  prettyPrint() now
calls new function formatString() rather than toString().  allows
coefficient to be printed without the positive sign rather than needing
to strip it after the fact.