Here is a totally different take on the Joule Thief (JT) circuit commonly found in garden lights. Instead of charging a 1.2v battery directly from the solar cell and converting the power to run a 3-volt LED, we'll be using the JT to convert the output from the solar cell and charging a Lithium battery first. Then when night falls, the battery is used to drive the LED directly.
This method has some advantages: (1) the Lithium cell that was chosen here (and avialable for $2 here) has an output of 3-volts, which can drive a White LED directly; it also has a huge capacity (800mAH) and very low leakage. (2) The solar cell normally can only charge the NiCd battery in full, direct sunlight, but, with the JT circuit, it is able to deliver power to the Lithium cell even on overcast days.
Step 1: The 'Reversed' layout.
Besides reversing the charge / discharge order, this circuit also reverses the location of the driver transistor and the coil, but wait, that's not all! The transistors all have reversed polarities, and even the output voltage is reversed!
No, it isn't an error! Diode D1, the LEDs and the charged battery all have their polarities reversed! That's because this Joule Thief is configured as a voltage inverter. This arrangement was chosen due to its advantages for this kind of application.
To improve efficiency, the traditional JT relies on a fairly constant battery supply (over a millisecond or so) to give it a boost when it is delivering power. With the limited output from a Solar Cell, we have to store all its power in C2 and feed it into the Lithium in one big pulse, meaning the capacitor will be "empty" for the few critical millisecond, cancelling the 'kick' the normal JT requires to work well.
Our 'Reversed' JT circuit will work as a regular JT - without the 3v Lithium load, an input of 1.2v will light up the LEDs quite nicely. Not strictly necessary, the LEDs are there so you can SEE the system working, and also to prevent the battery overcharging.