You are looking for a lithium polymer aka Lipo battery. They come on all shapes and sizes, some of which will fit inside a hula hoop. They charge up to 4.2 V and strongly (sometimes explosively) dislike being discharged below about 3 volts. Wikipedia says 2.7 V is fully discharged, but if you overdischarge them they won't hold charge anymore.
With 21 of those LEDs, you will be drawing about 400 mA maximum, probably more like 200 mA. The size of Lipo I'm thinking of usually holds about 100 to 200 mAH, so you would only be able to run the lights for half an hour max on one cell. You can put several of them in parallel for more capacity, but you have to equalize the voltages with a resistor and solder them together permanently.
Or you could put three AA batteries in series for 4.5 V.
Either way, you will need as many dropper resistors as LEDs. If you wanted to put the LEDs in series to use only one resistor, I'm not sure what battery you would use. Maybe a bunch of watch batteries in series?
Here is a good website to start with. Hobbyking doesn't have the best customer service, but their prices are so low it's usually worth the risk of hassle.http://hobbyking.com/hobbyking/store/li ... ration.asp
Set Voltage (S) to 1S (this means one cell in series for 3.7 V nominal)
Capacity (mAH) Minimum:0 Maximum:500
Warehouse: United States Warehouse (for faster shipping. orders from Hong Kong take like a month to get here.)
Brand:Any. (You want the cheapest battery that meets your size and capacity requirements. The higher-performance batteries are for airplanes that suck so much juice the battery is gone in two minutes.)
Hope that helps. Googling Lipo will get you a lot more vendor options. Hobbyking is just one of the biggest and cheapest.