Reorganize flag-related classes - give them a separate package
Add more helper methods to CommandFlags
Add MultiFlag - a flag that can be used more than once

MultiFlag is a flag that remembers all its occurrences. It can be parsed
multiple times during a CommandArguments.popFlags() call, or even across
different popFlags() calls. It counts how many times it was present
(i.e. times setPresent(true) was called) and collects all instances of
CommandArguments passed to it by setArgs() in a list.

This enables commands to handle flags like `-l lib1 -l lib2 -f file1 -f
file2`, etc.