`CliUserInputInterface` assumes that request object members are declared in a specific order

If Message in the example below is declared after the responses, we get some strange output when making the request:

enum TestResponse
{
    Yes,
    No
}

[Display("Is this gonna fail?")]
class TestRequest
{
    public TestRequest(string message)
    {
        Message = message;
    }
    [Submit] public TestResponse Response { get; set; }
    
    [Browsable(true)]
    public string Message { get; }
}

We then get this output:

Is this gonna fail?
0: 'Yes' (default)
1: 'No'
Please enter a number or name Response (Yes): 1
This is the `Message`, but the user has already responded!
Edited by Vivienne Spence