Basic implementation of sum()
Ensure initialize method's parameter is not effected at all
Basic benchmark
Optimize for same currency summation.
Benchmark improved from 110 sec to 24 sec (1000 Money object).
Avoid rounding error when target_currency is specified.
Make the specified currency as the first so all other currencies will convert to it.
Spec large number of sums of varying currencies