How can a micro controller turn off itself by closing the VCC line when battery is low?
One simple way is just to go into low power mode. The chip can draw just 100nA in low power mode, which is pretty close to being off. Here are more details of the Arduino's low power modes.

Alternatively, supply the Arduino's power through a PNP transistor. The Base should be weakly pulled high using a 10k resistor. The Arduino holds the Base low to stay on. When it wants to turn off, it lets the Base get pulled high to shut off the power.