IECoreGL::Selector fixes

This pull request does 2 things :

1. Prevents the crash which occurred when trying to select a PointsPrimitive.
2. Replaces Selector begin()/end() with construct/destruct, so the Selector is cleaned up properly even if an exception is thrown by the rendering code.

This breaks compatibility - I'm about to make a pull request that will bring Gaffer into line, so hopefully we can do a single synchronized release of both this break and the ObjectPool break.