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 branch 'develop3d' of https://github.com/mono/MonoGame into develop3d
Merge branch 'develop3d' of https://github.com/mono/MonoGame into develop3d
Merge branch 'develop3d' of https://github.com/mono/MonoGame into develop3d
Song.FilePath now an absolute path on desktop and Windows Store systems.
Song.Position and Song.FilePath are now internal as they are not part of XNA.
Added song support for Windows DX desktop builds.
Merge branch 'develop3d' into windesktop
Merge branch 'develop3d' of https://github.com/mono/MonoGame into develop3d
Merge pull request #1279 from slygamer/pipeline

Added missing content type writer source files.
Fix incorrect use of Dispose in ShaderProgramCache
The finalizer was telling Dispose(bool) to dispose of managed objects, which is incorrect.  This was causing a crash on exit.
Merge pull request #1281 from slygamer/shaderprogramcache-dispose

Fix incorrect use of Dispose in ShaderProgramCache
This is a fix for #1280. Added lock around the access to the sound effect management lists. Also changed the use of HashSet in lieu of List.
Merge branch 'develop3d' of https://github.com/mono/MonoGame into develop3d
Merge remote-tracking branch 'refs/remotes/origin/develop3d' into develop3d
Added API documentation for Mouse.cs and MouseState.cs.
Added api docs for KeyboardState.cs and Keyboard.cs.
Also started fixing api docs for Keys.cs.
Updated API docs for Mouse.cs and MouseState.cs.
Finished API docs for Keys.cs.
Re-worded API docs for keys.cs, keyboardstate.cs and keyboard.cs.