Better handling of star polytopes in polytope.py

- A new construction method in polytope.py for star polytopes is used that correctly (but not optimally) builds polytopes that the old method could not
- The renderer now draws 32 by 32 pixel squares at a time instead of line by line, to take better advantage of caching
- Trying to compute the inverse of an uninvertable matrix now throws a ValueError object instead of RuntimeError