fix some incorrect dns behaviors

This patch, applied to twisted 11.1.0 after the patch in 5454, does the following:

Causes FileAuthority to search for a name suffixed with a trailing period if it doesn't find the name in records. The reason for this is that if records are created from a bind file, they may be created with a trailing dot, but FileAuthority will never find them since it will never search for a name with a trailing dot.

Allows a DNS Secondary server to use a primary DNS server that is serving on a port other than port 53.

Fixes problems with parsing a bind format zone file. The previous parser was simply wrong. It regarded leading whitespace as irrelevant, when in fact leading whitespace is significant. leading whitespace indicates the absence of a name.

Fixes a bug that others have noticed with connectionLost getting called on UDP protocol. This bug happens when a DNS query issued over UDP is retried on TCP. Given no further DNS activity, 30 seconds after the TCP query completes, connectionLost is called on the UDP protcol and, absent this method, raises an exception.

2 and 4 sound good just from the description. Sadly, I personally do not know enough about DNS to comment on 1 and 3 as part of this review without brushing up on the subject. Before doing the research, I'd want to see unit tests -- none of the four changes you include here have unit tests, which are required in order for them to be merged, and tests make it much easier to see if code is correct.