Generate a zip code valid for a state, if the state is provided

For our use case, the zip code needs to be valid for the state, or the address is considered invalid.

In this PR, I added the state abbreviation to the zip_code method, defaulting to an empty string.  An empty string will default to the current behaviour.  A non-empty string will use the localized state.  A non-localized state will throw the I18n::MissingTranslationData exception.

Added tests to demonstrate.