Create BigInt.js with lot of bug-fixes from the original

Based on implementation by @cho45. Lots of bug fixes, including:

- Fixed bug with int2BigInt that causes mod(smaller, bigger) to always return 0

- passes JSLint

- fixed OO-syle functions to consistently return new objects

- fixed OO declaration to be 'use strict' compliant

- declare functions in order

- prevent global variable clobbering