fix bug when there are no obstacles
Add cvxgen solver for matlab and clean up matlab obstacle handling

The matlab implementation now matches the python, and the [obstacles]
cell array has been replaced by a [dim x pts_per_obs x n_obs] matrix.
This is a bit harder to think about, but it is vastly more efficient
(running test_poly_2d with a million obstacles has been reduced from ~1
minute to ~1 second)