SpriteBatch improvements

This is rewrited version of https://github.com/mono/MonoGame/pull/3290.
Without any formatting and regions.

 PS. Parameters is now named like in XNA.
I didn't consider this angle to it.  

By having a single `Begin` we're committing to copying a full Matrix by value on each batch.  It will be a little more expensive that before, but since `Begin` is pretty infrequent overall things should be file.

You should just do `Matrix transformMatrix = Matrix.Identity` as a nullable is just as expensive.