add_option() now has a "disabled" parameter, which will add the given
option as a simple indented text. This is very similar as calling
add_text(). The advantage of having this as a parameter to add_option()
is that disabled options can now be created from the shorthand function
cli_select_item() by passing each option as a tuple or dict, which has
disabled=True set.
This is a breaking change, as the parameter order of add_option()
changes.
Menus without a header had their initial position set to the second
element by default. This was due to most menus having a header and us
calling next_item() unconditionally. Now we first go to the first
focusable item and then call next_item() as many times as needed to get
to the specified initial_pos.
If the user gave us no options then we used to just raise a ValueError
(due to initial_pos being out of range). In most - if not all - cases
it would be more favorable to act the same way as if the selection has
been aborted, so that's what we're doing now.