Perl 5, 188185 bytes
$}="print join" they came for ";print+First",First,(map"$}themap"the ${_}s, and I did not speak out-
Because I was not a $_.
Then",Socialist,"Trade Unionist",Jew),"$}me"me-and there was no one left to speak for me."
Thanks to @Massa for -3 bytes!