WIP: RectVisual, Regular polygon visuals, and more.

As a start, I have updated the EllipseVisual to support float input as radius to draw a circle. I have also replaced instances of ```paint``` with ```draw``` which wasn't done in PR #275
You can eliminate the for-loop something like this:
```
theta = np.linspace(start_angle, stop_angle, num_segments)
self._vertices[:,0] = pos[0] + xr * np.cos(theta)
self._vertices[:,1] = pos[1] + yr * np.sin(theta)
```
For situations with many vertices, this would be much faster.