Adds Currencies implementation

Regarding the subunit question: this makes it possible to create custom currency repositories (Currencies instead of CurrencyRepository). It is up to the user how it is filled up.

This makes it possible to create a repository where the subunit is available. However for the default repository a list of currencies is still needed and #48 complains about it.

I would also fill up the current currency list with the list of subunits, and any other relevant data. It is a godd base to work with, but these metadatas are not tied to the `Currency` Value Object.
Should we make this Iterator and ArrayAccess friendly?