Implement currency formatting

- [x] Implementation
- [x] Tests
- [x] Doc

Fix #238 
I don't have a strong preference either way. If you keep the current usage, `fn` needs a better name.

If you keep the current pattern: If you make the default have a value as well, e.g. `"symbol"`, you could put all three functions in that object and get rid of the fallback. Wouldn't even need the temp var:

```js
properties = ({
  code: currencyCodeProperties,
  name: currencyNameProperties,
  symbol: currencySymbolPattern
}[ options.style ] )( currency, cldr, options );