Implemented arbritary precision arithmetic in conversions

Through the use of BigRational when calculating.

Fixed references to the ConversionEngine which returns Conversion objects
which contain BigRationals instead of doubles
Fixed references to BigRational in custom unit groups
Added more precision to digital storage factors
Fixed imprecise digital storage conversion factors
Added new constructor in BigRational to accept a String
Added overload for Evaluator.addVariable()

New overload takes a String variable and a double value as parameters.

Fixed #6