Raise BadTTL for non-decimal Unicode digits in dns.ttl.from_text(). (#1279)
from_text() gated its integer parsing on str.isdigit(), then handed the
text to int(). str.isdigit() is True for Unicode "digit" characters whose
category is No (e.g. the superscript "\u00b2" or the Ethiopic "\u1369"),
but int() only accepts decimal digits, so such input escaped the parser's
validation and raised a bare ValueError instead of the documented
dns.ttl.BadTTL.
This was reachable through the public zone-file parser: a resource-record
TTL or a $TTL directive containing such a character crashed
dns.zone.from_text() with a ValueError rather than a clean
dns.exception.SyntaxError.
Switch both isdigit() checks to isdecimal(). For a single character,
int()-acceptance is exactly equivalent to isdecimal(), and isdecimal() is a
strict subset of isdigit(), so every previously valid TTL still parses while
the non-decimal digits are now rejected as BadTTL.
Add a regression test covering the fast (all-digit) path and the BIND-style
units path.