Fix origin transform in DrawInternal with src rect

This change fixes a transform applied on the origin parameter
passed to DrawInternal, based on the ratio between the destination
rectangle and the texture width / height.

When a source rectangle has been specified, its size should be used
instead.
Fix edge-case when source rect has 0 width/height

Nothing would get rendered when the source rectangle had a width or
height of zero, whereas XNA does render something.
Merge pull request #1174 from elisee/fix_spritebatch_draw_origin

Fix origin transform in DrawInternal with src rect