Appliance console ask_with_menu displays an integer

This displays the default menu choice as a number.
Before, it could possibly be a string that the user could not enter.

This moves the menu default functionality into prompt.
Where we can properly test it.
And it now ensures the default is a string, making it more resilient.

Due to the way ask_with_menu works, most non prompt specs stub ask_with_menu.
Again, that is why we want to test it in prompt_spec where it is not stubbed.

/cc @Fryguy 
This generalizes the change we did before to #690