PLT-464 - Add country

A class representing a country by ISO-3166-1.

This is based on `Currency` and is not an extensible enum because there is no associated data or logic, ie. it is no more than a typesafe value.
Are we sure the cache gives a noticeable performance advantage? Especially as an awful lot of uses will be via the static constants anyway.