Fixes problem with many optional decimals

When using a format with many optional decimals, insignificant trailing
digits could be added to the number:
Ex:
numeral(3162.63).format('0.0[000000000000]') = "3162.6300000000001"

Also changed numerals internal toFixed method to never return
trailing decimal points.

Also fixed a bug where an extra optional decimal was being added when
using a specified abbreviation.