BMP decode channels = 1 support
### Issue type

Feature Request

### Have you reproduced the bug with TensorFlow Nightly?

Yes

### Source

binary

### TensorFlow version

2.13.0

### Custom code

No

### OS platform and distribution

_No response_

### Mobile device

_No response_

### Python version

_No response_

### Bazel version

_No response_

### GCC/compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

`decode_bmp` to support `channels=1`

This seems like an arbitrary limitation to not support this for BMP formats.

### Standalone code to reproduce the issue

```shell
import tensorflow

image = tensorflow.image.decode_image(bmp_bytes, channels=1)
```


### Relevant log output

```shell
`tensorflow.python.framework.errors_impl.InvalidArgumentError: {{function_node __wrapped__DecodeImage_device_/job:localhost/replica:0/task:0/device:CPU:0}} `channels` must be 0, 3 or 4 for BMP, but got 1 [Op:DecodeImage] name:`
```
