Created a ZernikeThinLens optic that reimplements the existing ThinLens

ZernikeThinLens includes a better pupil-radius-guessing heuristic,
as well as a pupil_radius keyword argument to make the radius at which
rho = 1 for Zernike computation explicit. Output has been checked against
the existing ThinLens and verified to be identical for the same
input parameters.