Exact decimal numbers should parse as rationals

I've added a test to this effect.

The changes primarily consist of using `jsnums` methods rather than primitive JS
operations. These methods appropriately modify the number levels. The
`parseFloat` procedure has become more complicated because at every step we
ensure that exactness is preserved.
Add a parameter to fromString which allows the exactness to be set externally
Merge pull request #8 from danking/master

 Exact decimal numbers should parse as rationals