Nowadays 外人 and 外国人 are similar in meaning, with the latter seeing less usage. However, traditionally speaking 外人 is a derogatory word that shouldn't be used towards foreigners. 外人 actually doesn't mean foreigner as much as it means "outsider" to a group. So one could technically refer to people in a different social class/group as you as 外人 and technically be ok. Though I've have not heard this usage recently. This usage is the derogatory one btw.Though the only people I've met that know about this distinction have been Japanese teachers and people over 60.
外人さん I have heard is just japanese throwing a title onto the end of a group of people to make it seem more polite like Tanaka-san, though whether or not it is actually more polite is questionable.
lastly, I've actually been called this by my grand-mother-in-law, 異国人(いこくじん) which is a VERY old very polite way of referring to foreigners as it means "people from a different country". But even my wife was shocked when she heard this, since she has never heard it before.