I would actually suggest LiFePo4 for anything DIY. Not only is it safer so one false move won't cause an inferno, but it will last two to four times as long at the CONST of a little extra size and weight.
Since you are just running an arduino, I would use only 1 single cell, and avoid cell balance woes.
I would use a boost regulator to step up the voltage from the cell to the required 5v.
To actually charge the cell, I would probably use a cheap ebay CC-CV charger board, and set the voltage for about 0.15V below the max for your lifepo(you only lose 10% of the energy but You make the battery last much longer), and set the current as appropriate for your panel and battery.
If your circuit is drawing power while the charger is charging, your circuit will take what it needs and any extra the charger puts out will go into the battery.
You might need a diode, to make the battery not discharge back through the charger.
Use a protection pcb like you can get from batteryspace, or better yet a protected lifepo with the pcb built it.
Remember to size your solar panel so that there is enough energy to keep the circuit running. Even with the protected cells overdischarge kills.
What I'd really like to do is design a lifepo4 charge control board that had all this in one unit since everyone seems to want it...