------
Released August 13, 2021
* Propagations with ``tilt='angle'`` have tilt projected out of each
plane once before the entire propagation rather than at each monochromatic
propagation
* Rework ``Plane.pixelscale`` to always store (r,c) pixelscale
* Fix bug in ``Plane.mask`` on the fly calculation that was overwriting
``Plane.amplitude`` with a binary mask
* No longer cache ``Plane.ptt_vector``
* Deprecate ``Plane.cache_propagate()`` and ``Plane.clear_cache_propagate()``.
This functionality has been migrated to ``propagate._prepare_planes()``
and ``propagate._cleanup_planes()``
* New ``Plane.rescale()`` method to rescale Plane pixelscale
* Update ``util.rescale()`` to choose a more conservative (better sampled)
result when having to choose an integer output shape
* Define ``Wavefront.__slots__`` to increase attribute access speed and reduce
memory footprint
* ``util.circle()`` `center` parameter is now called `shift`
* Deprecate ``cache.Cache`` in favor of a simple dictionary
* New function ``fourier.expc()`` to more quickly compute a complex exponential
* ``fourier.dft2()`` now accepts an offset parameter
* New function ``Plane.fit_tilt()`` to handle tilt fitting and removal of in the
Plane's ``phase`` attribute. This is now called once
* New function ``Plane.slice()`` for computing avaliable slices from the plane
attributes to speed up propagation performance
* New ``Detector()`` plane that returns intensity
* Update ``zernike.zernike_coordinates()`` to automatically compute shift that
locates the origin at the mask centroid if no shift is provided.