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.
Doesn't test_of_String_bad already cover this (or could do)