Move TextureAtlas into UiImage and remove impl Component for TextureAtlas (#16072)
# Objective
Fixes #16064
## Solution
- Add TextureAtlas to `UiImage::texture_atlas`
- Add `TextureAtlas::from_atlas_image` for parity with `Sprite`
- Rename `UiImage::texture` to `UiImage::image` for parity with `Sprite`
- Port relevant implementations and uses
- Remove `derive(Component)` for `TextureAtlas`
---
## Migration Guide
Before:
```rust
commands.spawn((
UiImage::new(image),
TextureAtlas { index, layout },
));
```
After:
```rust
commands.spawn(UiImage::from_atlas_image(image, TextureAtlas { index, layout }));
```
Before:
```rust
commands.spawn(UiImage {
texture: some_image,
..default()
})
```
After:
```rust
commands.spawn(UiImage {
image: some_image,
..default()
})
```