When I was in the Army, we devised a pretty good heating system on a
particularly cold night, though not as cold as where you are.
The US Army issues these cheap chemical heaters (just add water) for the
MRE's they issue in the field. The heaters are nothing more than a piece
of cardboard with chemical crystals in it, about 15cm x 8cm, weighing next
to nothing. We would find a 2-liter jar or bottle, rip up a bunch of MRE
heaters, and loosely pack the jar about halfway full with crystals and
cardboard. We would then add water until the jar was about 3/4 full.
This would generate a terrific amount of heat for a couple hours, getting
cooler with time. For about the first hour or so it would be too hot to
touch, but cool enough that it didn't melt the plastic (~140 deg. F?). In
a relatively sealed environment, it was actually quite effective at warming
up a tent.
One word of warning though: it creates a small quantity of somewhat noxious
gas (acetic acid?). We solved this problem by duct taping a hose to the
mouth of the jar and feeding the end out a small crack in the door.
Using this kind of heater takes practice and finesse to maximize the useful
output for the longest possible time, but it is reasonably effective once
mastered and the chemical MRE heaters are cheap, light, and flameless.
(You can create mildly amusing explosions by mixing heater crystals and
water in a sealed container.)