bevy_mod_raycast 0.11.1

Ray Casting for the Bevy Engine.
Documentation
# 0.11.0


- Changed: `Raycast::cast_ray` now accepts a `RaycastSettings` parameter.
- Added: entity visibility handling can now be configured using the `RaycastVisibility` field on `RaycastSettings` and `RaycastSource`:
  - `Ignore`: Completely ignore visibility checks. Hidden items can still be raycasted against.
  - `MustBeVisible`: Only raycast against entities that are visible in the hierarchy.
  - `MustBeVisibleAndInView`: Only raycast against entities that are visible in the hierarchy and visible to a camera or light. This is the same as setting the `should_frustum_cull` parameter of `cast_ray` to `true` in 0.10.

# 0.10.0


- Changed: `Raycast::cast_ray` is now a mutable query. The system param now stores allocated buffers in `Local`s to reuse allocated memory.
- Changed: parallel AABB culling now uses an unbounded channel to reduce time spent allocating a bounded channel when many entities are present.

# 0.9.0


- Added: `Raycast` system param allows immediate raycasting into the world using the `cast_ray` method.
- Removed the `Intersection` component. Intersection data can be found using `RaycastMesh::intersections()` and `RaycastSource::intersections()`.
- Changed: `Ray3d::from_screenspace` start from the near plane.
- Fixed: Raycasts do not hit bottoms of un-rotated `RayCastMesh`es.
- Changed: `DefaultPluginState` renamed to `RaycastPluginState`.

# 0.8.0


- Implement `Reflect` for `RaycastMesh`, `RaycastSource`, and `RaycastMethod`.
- Fix raycasting for non-indexed meshes.
- Update to bevy 0.10.

# 0.7.0


- All internal debug related code is now behind feature flags to enable running with
  `default_features = false`. 
- Renamed:
  - `RayCastSource` to `RaycastSource`
  - `RayCastMesh` to `RaycastMesh`
  - `RayCastMethod` to `RaycastMethod`
  - `RayCastSet` to `RaycastSet`
- Update method naming to be more consistent with the ecosystem:
  - `intersect_list()` -> `get_intersections()`
  - `intersect_top()` -> `get_nearest_intersection()`
  - `ray()` -> `get_ray()`
- Added `intersections()`, the counterpart to `get_intersections()`. This method returns an empty
  slice if there are no intersections, instead of an `Option`. The latter is useful if you want a
  guarantee that there is at least one intersection after unwrapping the `Option`.