D3DBackend: Don't recompute ID3D11InputLayout for different shaders.

Rebuilding the layout isn't free, so cache it instead.  My measurements show approximately a 5% performance improvement on a fifoplayer testcase on an Intel HD4000.

I'm not very familiar with the D3D backend, so I'm not sure if this fix is correct, or if there's a better approach.