swift2thrift: Fix type ordering bug

When a type A depends on a non-completely-resolved type B, type B is
added to a list of "known" types (in addition to emitting an error
message) so that other classes that also depend on B don't emit the same
error message again.

However this behavior means that a non-yet-completely-resolved type B
may appear as "known" to another type C and thus C's .thrift code is
emitted before B's code has.

This change fixes the bug at the expense of more verbose and repeating
error messages in case the input is not valid.