CCEffectRefraction - Fix various issues uncovered by Viktor during testing

- Use premultiplied alpha blending to combine the sprite's main texture with the refracted environment.
- If the refracted texture coordinates would be out of bounds of the environment, do not combine the resulting environment pixel with the sprite's main texture.
- Fix a crash that occurred if an effect was applied to a sprite with a nil main texture.
- If a sprite has no main texture, set the texture rect from the normal map instead.
I'm always a little leery of using conditionals in fragment shaders. On pre-A7 devices I've done something like this:
```
vec2 compare = 0.5 - abs(refractTexCoords - 0.5)
primaryColor += step(min(compare.x, compare.y), 0.0)*texture2D(...)
```