When something so confusing and frustrating occurs, it helps to go back over the conversation and invitation to see if there was any reason for confusion. Make you that you were very clear to them that this was for an early meal/lunch, and that you said something like, "Please come around 1 PM. We'll have some appetizers and then sit down for the feast at 2 PM. Bring your appetites." Then review what they said, to see if they said, "Oh we'd love to stop by" (which is kind of vague and implies they wouldn't make it for 2) vs. "Lunch sounds delicious and what can we bring?"
A lot would depend on what their demeanor was when they arrived. Were they embarrassed and contrite, were they stressed, were they totally confused by the fact that the meal was over? That would be very telling and help give direction.
I think Wild Woman's answer is excellent, in which you express worry rather than annoyance and in which you tried to call them to check on their plans. Surely, when they arrived and saw that you had eaten, they knew there was a screw up of some sort. But if they weren't clear on the 2 PM, is it possible that they are just as hurt because they think you went ahead without them and moved up your dinner time? People have such ingrained customs around Thanksgiving - we never eat before 5, but friends of ours wouldn't dream of eating later than 1 PM. We often assume that others do it the same way we do, so miscommunications occur.
Assuming you were totally clear and they are just thoughtless or got such pressure from family or someone else to go there first, and nobody bothered to call anyone else, you have to put yourself in the Thanksgiving spirit and say that you had plenty to eat and good friends/family for the rest of the meal even without this one family. You can be ticked off, but I definitely wouldn't send an email or tell them how hurt you were. You have to assume that they actually noticed that the meal was eaten, and hope that they won't ever do it again to anyone else.
We see question after question on Mamapedia about people's lack of exposure to good manners - birthday parties with no RSVPs, hostesses wondering how many calls and emails are appropriate to nudge people into simply replies, people saying their child will happily come to the bday party and then coming themselves with 2 younger kids and expecting that you will feed and provide goody bags for everyone, people rude acting rude and entitled in stores and restaurants, people bringing Christmas gifts for people who never reciprocate, etc.
As far as inviting them again, wait and see. If you do decide next year that you want to do it again, it's okay to say "I may have miscommunicated last year, and I feel badly that you missed the meal." (Even if you don't feel badly, that's what you say.) "We'd love you to come between noon and 1 for appetizers and some football, and then we will sit down to eat at 2 PM."
I think nothing good can come from either an after-the-fact "I'm pissed off" email or from continuing to stew over it. Anger eats you up. If you were taken advantage of, all you can control is your own reaction - how angry you want to be and stay, and how you handle new invitations in the future. And this will make you even more sensitive to others in the future, making sure you know their plans so you don't ever do a similar thing even accidentally. Take the high road, be the bigger person. It's better for you.