OPT: BLIP2-ready `prepare_inputs_for_generation`
# What does this PR do?

This PR makes 2 changes to OPT's `prepare_inputs_for_generation`:
1. Adds the possibility of passing `inputs_embeds`
2. Removes the case when `attantion_mask is None`: a) it is redundant, the base case of inferring an attention mask with all ones is also in the model itself [here](https://github.com/huggingface/transformers/blob/baf4bacb1f10ecb63f0efc98d07463ae8799c7e3/src/transformers/models/opt/modeling_opt.py#L636) b) the shape isn't right when `inputs_embeds` is passed

✅ Slow OPT tests were run locally.
cc @NielsRogge <|||||>_The documentation is not available anymore as the PR was closed or merged._