Adds phone number parsing capabilities to
digestive-functors-validations.

Adds the capability to take raw, unstructured text and parse it in
a structured PhoneNumber type. If parsing fails, a localized (clause,
sentence) tuple is returned. The clause is for composing error messages
of independent validation functions (e.g. the new hasAreaCode function).
If the validator also transforms its input (as the case in parsing,
Text -> PhoneNumber), then it does not make sense to return multiple
error messages for that given field, and so it should be set to Nothing.
Also, some? languages do not have subordinate clauses in the same way
English does. For these, Nothing should be used as well for the clause,
and only the Sentence field should be used.