Amanda has a good point.. there are certainly ways to find out what is going on..
I don't think that you should feel bad for snooping. He's being secretive with his information and you two are going through an awful time right now! Anyone in their right mind would be wondering who he was talking to, and who the girl in the picture is. Hopefully its just some random girl he met years ago, and hopefully things work out for the best.. however, I don't think you should have to walk around on eggshells not to upset him by bringing up (what he views as) controversial topics. You have a right to know, and if it is another women.. you biting your tongue or you calling him on it isn't gonna change that outcome. Granted I wouldn't go crazy on him and demand to know who the girl is, but there are calmer ways to do ask, because you deserve the answers if you want the answers. The problems you are having now may go away on their own, but walking on eggshells may also just mask the problem, and it could occur again later a few years down the line in the event that you become resentful, or if he begins to feel the same way that he does now again.
I truly hope that things work out for you, but like you said, you've been an amazing wife. everyone has their problems, and you shouldn't need to be silenced so that he'll want you back. If he realizes how great you are, it will be because of who you are as a wife and as a result of what you mean to him.
I hope that this post doesn't sound judgemental at all, and that you are not hurt about what i've said, but i've been in relationships where i've walked on eggshells not to dissapoint a boy that was hurting me, and it ended up hurting me more in the end because I came resentful that I was the only one expected to change, and as a result, I wasn't being myself (just turning into who he wanted me to be). I do care about you Shan, and I hope this helps! I think that you have a right to know whats going on in your life, and in your family!