Fixed a few bugs, added a number of test cases

1. A couple of bugs were due to leading zeroes of an Int
   being stored, which would throw off the iteration in
   Int::subtract. A method Int::cleanBins() is added and
   called to ensure these leading zeroes are cleaned up.

2. MSVC doesn't have a built in `isfinite()` function for
   doubles. I added a simple `isFinite()` that seems to
   work.

3. Several Python scripts are added to generate test cases,
   and there are numerous new test cases.

4. Associated with (1), all unchecked `bins[i]` subscripting
   is replace with bounds-check `bins.at(i)`.

5. There are a few debug flags for getting traces of division,
   modulus, and subtraction.