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
Merge pull request #10 from mono/develop3d

Merge back from develop3d