Allow multiple locales.

Fixes #750. Code that requires localization is now within a closure that has access to locale-specific strings.

To minimize the degree of isolation required, d3.scale.linear (and other quantitative scales, including d3.time.scale) still default to the en-US locale. However, you can create your own localized formats using locale.numberFormat and locale.timeFormat.

(It would be possible to move these other classes to within d3.locale as well, but that would mean anything that depends on d3.scale.linear would also need to be moved within d3.locale, such as d3.svg.axis. I think it’s cleaner to leave them using a default locale rather and have people localize the formats explicitly, rather than classes that localize anything downstream; you can always reassign d3.format to a different locale if you want to change the default.)

Also introduces locale.timeFormat.multi which can be used to create a [multi-scale time format](http://bl.ocks.org/mbostock/4149176), and improves currency formatting by allowing the currency symbol to appear after the numeric value.