[Console] Add a concept of 'tail' arguments

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This PR introduces the concept of a "tail argument". It is essentially an extension of the concept of `InputArgument::IS_ARRAY` that allows the last argument in the command line to unconditionally capture all the remaining arguments, whether they look like options or not.

The use case targeted here is the one of command lines that chains or wrap other command lines. It makes possible to implement those without forcing the user to use the `--` separator to explicitly separate the options of the wrapper with the options of the wrapped command (at least when they are non-overlapping).
@fabpot should we remove the upper bound check ? It makes it impossible to write forward-compatible commands (for instance a command trying to pass ``12`` as value to have ``IS_ARRAY | IS_TAIL`` for people using 2.6+ allowing to omit the ``--``, but still being compatible with older Console versions to support the LTS (users would simply have to pass ``--`` when wanting to pass an option).
If we decide to make the forward compatibility possible, we should probably do the change in 2.3 though (otherwise it would only allow it for 2.6+ for the next time we add a flag)