typo
Fix #30

* record upper-/lowercase identifier information by replacing
  identifier.visit(this) with
  visit{Lower,Upper}caseIdentifier(identifier)
* using that information, prepend \i/\I to token text in visitIdentifier
  if token text’s length doesn’t match token’s length
* add tokenInStream to FormattingWriter.writeToken because we want to
  write \iVALUE, but the token stream only contains VALUE
* add test
Fix #30 for imports

by relaxing the restriction when `exists identifierUppercase` is
required – when the stacktrace contains “Import”, it’s okay to not know.
(I know this is ugly, but I don’t want to remove the assertion
completely, because I’m sure it’ll help me find some bugs in the future,
when I forget to use visitIdentifier{Lower,Upper}case and use
identifier.visit instead.)