currency: improve API

This is a breaking change, unfortunately.

It brings many improvements, though:
- Currency.Unit is nicer than Currency.Currency.
- Currency.Unit is a more accurate terminology than Currency.Currency
  (The latter refers to both the concept of means of exchange and the
  unit of measurement).
- Currency.Amount is more accurate than Currency.Value
- Both Unit and Amount will be used with unit packages and thus this
  interface is more concistent.
- Splitting Amount from formattedValue gives better separation of
  concerns.
- Removing formatting field from Amount makes it a more efficent
  representation.

Also added a comment about the formatting API. Looing further into
other APIs a slight adjustment to the API may be in order.

Change-Id: I8f24941b4ecaac5005b573ebe2a0fa30a80ddad1
Reviewed-on: https://go-review.googlesource.com/17183
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
4 files changed