opIndexAssign for shader parameters

I'm not entirely sure if this is a good idea or not - it seems convenient, but I'm more concerned that it goes against the design model you have for DSFML (that is, more focus on staying true-to-form). Regardless, I thought I'd bring it up.

With these index assign overloads in shader, something like this could happen (reminiscent of how XNA decided to do things):
```
myShader["bumpMap"] = someTexture;
myShader["values"] = [15, 24.6, 200];
myShader["backColor"] = Color.Red;
```
Note that these are only assign overloads. You can't read values this way, only write, which seems appropriate.