Added TextureBasedCircle as a new Shape

Due the fact, the texture get rendered on the 0:0 pos of the texture,
the normal Circle class do not provide the real center of the circle.
TextureBasedCircle fixes this issue.