The L298 is a H-bridge.
An H-bridge can reverse the polarity to the motor, to make the motor go backwards.http://en.wikipedia.org/wiki/H-bridge
The saturation voltage is like you wrote. The saturation is when the output is completely driving low or high. The output voltage is however not 0V and the maximum. There is a voltage drop of 1.7V and 2V.
If you use two Lipo cells in series, they could discharge differently. So they could get damaged.
That is why I mentioned the "balanced" Lipo battery packes. The "balanced" means that every cell can be accessed by the charger and the cells are matched in the factory.
If you use a single Lipo cell, you don't have that problem. In that case you need step-up converters.
You can supply about 6V or 7V (6...12V) to the power plug of the Arduino Uno. The onboard voltage regulator makes 5V.
You can not supply a higher voltage to the motor shield to compensate for the voltage drop, because that is wrong !
The voltage drop is not consistant, and if the motors use little current, they get too much voltage. If the motors use a lot current the voltage is too low. So they won't start or get damaged (perhaps both).
That L298 is fine for small 12V motors. But not for 3V motors. I don't know how to make this work in a simple way. You need another motor driver, or at least a mosfet (PWM) and a relay (to change direction).