Use round instead of floor to ensure the hundreds place is correct
Round before modulo
Merge pull request #43381 from petercollingridge/floor_to_round

fix #41894;

Test plan: Check some example exercises and ensure that the hundredths place is correctly given in the hints.

Auditors: beneater, alpert
Only uglify javascript with a newline in it.

Summary:
I added comments at the top of the file explaining why we uglify at
all, and why uglifying is only necessary when the javascript has
newlines.

This gives a nice speedup to 'make pack:

   % make pack
   old: 92.293u 9.616s 1:52.15 90.8%    0+0k 16+7712io 0pf+0w
   new: 71.260u 8.792s 1:36.97 82.5%    0+0k 0+7896io 0pf+0w

23% less cpu time!  Most of this is spent spawning pack.rb, so in
streaming mode (which deploy.py uses), it's even better:

   % cat exercises/*.html | ruby build/pack.rb >/dev/null
   old: 28.197u 0.564s 0:31.92 90.0%    0+0k 0+0io 0pf+0w
   new: 7.604u 0.116s 0:08.49 90.8%     0+0k 0+0io 0pf+0w

A whopping 75% less cpu time!

Small style cleanup suggested in review.

Test Plan:
Did a diff of exercises-packed with both the old and new pack.rb.
Diffs were as expected:
   -        <var id="INT">rand(5)&gt;0?randRange(1,9):0</var>
   -        <var id="FRAC">rand(3)&gt;0?"."+randRange(1,9):""</var>
   -        <var id="SIGN">randFromArray(["","-"])</var>
   +        <var id="INT">(rand(5) &gt; 0 ? randRange( 1, 9 ) : 0)</var>
   +        <var id="FRAC">(rand(3) &gt; 0 ? "." + randRange(1, 9) : "")</var>
   +        <var id="SIGN">(randFromArray(["", "-"]))</var>
   <etc>

I also ran python -m SimpleHTTPServer and visited
   http://localhost:8000/exercises-packed/absolute_value_equations.html
   http://localhost:8000/exercises-packed/age_word_problems.html
   http://localhost:8000/exercises-packed/angles_2.html
and verified they still render correctly.

Reviewers: alpert, eater

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D2099
Switch to using expr() function and make more interesting prpblem
Fix solution entry box and make better range of problems
Write function to simplyify terms in sum of expressions
Split into separate + and - exercises to make it easier to deal with hints
Prevent coefficient of g being -1

When the coefficient is -1 there is some weird formatting.

fix #43391

Test plan: minimal

Auditors: alpert, beneater
Rewrite rate problem hints
Include a solution box for the domain of the expression
Remove redundant variable
Split final hint
Remove u and v from array of possible variables
Make sure exercises use randVar when picking a random variable
Merge pull request #43434 from petercollingridge/randvar2

fix #43236; fix #43385;

Test plan: check each exercise still displays an equation

Auditors: beneater, cbhl
Change method of generating problem to avoid questions that simplify
Simplify fraction where required
Add solution
Remove unnecessary variables