refactor(xcmd): introduce LabeledBooleanOptional
refactor(xcmd): introduce LabeledBooleanOptional

When commands take many boolean parameters, things
become a bit confusing.

To make it all more clear, specially when reviewing
the history of ran commands, this introduces the
concept of labeled booleans. This allows adding
a label to a boolean parameter, i.e.:

```
(CONNECTED) /> ls / watch=true
```

hence documenting the given parameters.

This commit does not, however, wire up things
so that LabeledBooleanOptional is used everywhere.
That will be in a follow-up commit.

Signed-off-by: Raul Gutierrez S <f25f6873bbbde69f1fe653b3e6bd40d543b8d0e0@itevenworks.net>

rgs1/zk_shell,rgs1/zk_shell,harlowja/zk_shell,harlowja/zk_shell