Make SpriteBatch.DrawString() an atomic operation.

Basically, if SpriteSortMode is "Immediate", only flush after
an entire SpriteFont.DrawInto() call, not after each character.

Reduces number of draw calls by ~90% in some text-heavy scenes,
without (as far as I can tell) diverging from the Xna spec. Doesn't
seem to break anything in the MonoGame tests, either!
Merge pull request #2087 from sulix/spritefont-fix

Make SpriteBatch.DrawString() an atomic operation.