Stem should not use human-readable message of GETCONF 552 response

Both tor and stem use a message format for GETCONF 552 errors that differs from [wording of the control spec's GETCONF response].

GETCONF output via tor-prompt:

>>> GETCONF blah
552 Unrecognized configuration key "blah"

Stem //expects// this format; see [[https://gitweb.torproject.org/stem.git/tree/stem/response/getconf.py?id=aa692e62bfda5be8b87e463c3c899cb13968d32a#n33|GetConfResponse]]:

      unrecognized_keywords = []
      for code, _, line in self.content():
        if code == '552' and line.startswith('Unrecognized configuration key "') and line.endswith('"'):
          unrecognized_keywords.append(line[32:-1])

      if unrecognized_keywords:
        raise stem.InvalidArguments('552', 'GETCONF request contained unrecognized keywords: %s' % ', '.join(unrecognized_keywords), unrecognized_keywords)
      else:
        raise stem.ProtocolError('GETCONF response contained a non-OK status code:\n%s' % self)

My tor version, for reference:

>>> GETINFO version
250-version=0.3.2.10 (git-0edaa32732ec8930)
250 OK

==== Historical note In searching (for potential duplicates) to file this ticket, I happened upon the original ticket: #6114 (closed)

==== Priority, Severity I'm marking this as low,minor because it appears the code will work decently well (still raise //an// exception) if the message format changes.

==== Expected behavior In discussion over #tor-dev, it was agreed that stem (and generally any controller) shouldn't rely on a specific message. Only the numeric code 552 should be relied upon.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information