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.
That defies the point of having a value object. It makes it impossible to serialize Money because now you'd have to include a list of all currencies in each Money value -- which is a mutable concept anyway.