Fix cli with no argument handling

Seems the cli.tools 0.2.2 library decided to change its API and is now
not returning nil valued entries when there is no default. This has played
havoc with our required-args detection, meaning that when you attempt to
call a command without any arguments you get a nasty exception.

This patch fixes this, and adds acceptance tests to ensure we don't regress.

Signed-off-by: Ken Barber <ken@bob.sh>