Issue #227 - Fixed floating point noise accumulation in axis marks

Just to recap, there were cases in which axis labels would have way too many decimal places (e.g. "0.900000000000001").  I changed the label generation code to multiply by the step size instead of repeatedly adding to avoid round-off error accumulation.  I tested this against the code put up by the original bug reporter as well as some cases I was running into and it seems to fix the problem nicely.
minor comment: duplicate code here.. I think it could be something like `while (true)` here and `if (lastValue>to+epsilon&&i<maxTicks) break;` on line 664