Hello there,
The buck circuit is the most efficient and the most stable. I'd go with that since you can make the solar panel voltage whatever you want it to be. Although it's better to have the input and output voltage as close to the same as possible, you should make the panel voltage taking into consideration any loading while operating. That means it has to be a bit higher than the output is going to be while the cell is charging.
You might want to look into max power tracking too where you get the most power out of the array for a given level of sunlight.