Fix Acceptor iterator ending early if a connection attempt fails
auto merge of #9089 : anasazi/rust/fix-acceptor-iterator, r=cmr

The iterator over incoming connections has no natural end, so it should always return Some(_).
Currently, if an incoming connection fails, the iterator returns None.
Trying to accept another connection afterwards enters the realm of undefined behavior (due to the iterator protocol being silent on the issue).

This PR changes wraps the underlying accept call in Some, so the iterator never finishes.
Properly encode/decode structural variants.
Rename encode_struct_field_names to encode_struct_fields to reflect what it actually does
Add a test for cross-crate struct variants
Replace dashes in the filenames of the new tests with underscores to avoid issues with Windows
Fix whitespace in tests