Added CLI argument scooping

Added a new type in the command tree which scoops up all arguments which
are not matched, "the rest", and places them in a list which is passed
to the command in the "arg" option.

It seems to work well from my initial tests, but the unit test fails for
some reason. Will not consider solved until this is fixed.

Part of #241 and #212
Further work on argument scooping

Modified argument scooping function and CLI parser unit tests.

Part of #212 and #241
Merge branch 'cli_rest'