Agree on the heater. Any new heater you use should be given 24 hour test run in similar size container with in tank thermometer. Once you know it's working properly, set it below where it turns on then gradually click it up. Once it turns on let it warm things up until it turns off (make sure it's not just turning off temporarily.. some will auto shut off once they've been on so much as a fail switch). Wait an hour, then click it up another degree. Aim between 78-80. I wouldn't do more than 5 degrees per day.
You're not doing anywhere near enough water changes. You need a minimum of 20% weekly, which in this size is 6 gallons. This should include a siphon. But if this tank is still cycling much more is needed.. you should have a reliable drops kit for ammonia, nitrite and nitrate and be testing daily for the first two and doing an extra 50% change any time either show up. Cycling will take up to two months. Also with the freezing temps your cycle will have a hard time. http://www.bettafish.com/showthread.php?t=47838
I hope you feed your snail too.. any chance your betta is getting his algae pellets or whatever you're feeding?
You are also giving low quality food. I suggest looking for a pellet whose first two or three ingredients are whole
fish, not fish meal or wheat. He should get two small meals a day (how many ddpends on the pellets you get) with one fast day a week.
At this point I'd fast him a few days.. 3 to a week until you see a lot of poop and his belly goes down. Also watch poop and make sure it's normal. Do a series of 3 50% water changes (use same temp water as the tank, matched using in tank thermometer under running tap then premix with conditioner before adding) with siphon to get your water quality under control and go ahead and get that test kit. Get him warmed up