add SWSpriteBatch

It's possible to define a custom `Batch` whose transform matrix may be changed without flushing. For subsequent draws, the vertices are simply adjusted in software. This can improve performance in cases where the batch would keep being interrupted by transformable Groups. For example, in a UI it allows scaling a `Table` (squashing a button) without interrupting the batch.