Dispose Refactor

This is a refactor of the dispose pattern across all the `GraphicsResource` objects.

The main change is the replacement of the `PlatformDispose()` with the normal virtual `Dispose(bool)` method.  This caused problems in heavily overloaded classes like Texture/Texture2D/RenderTarget2D where it was not possible for all three classes to have their own dispose implementations.  By only depending on `Dispose(bool)` any class can overload the disposal behavior.

The rest was just fixes to where dispose was not implemented under DirectX.  This included `ConstantBuffer`, `DepthStencilState`, `RasterizerState`, `SamplerState`.

Note I fell into the old #2191 trap while working on this and backtracked to correct myself.  That is a separate issue that still needs to be addressed.