[DS-1083] Command line tool for manipulating EPersons
Add 'read' command to execute a file of commands.
Factor runManyCommands() out to a new class, so that 'read' can be an ordinary command
Give feedback when an EPerson is created or destroyed
Factor that looong 'if' into one function per operation (add etc.)
Normalize some naming, implement --modify verb.
Used the wrong reference to test command and got an NPE
Make command reparsing work properly, and general cleanup
Inadvertently named the batch-input command 'run' rather than 'read'
Context is not valid if there was no understandable verb
Email addresses need at-symbol to be a word character when tokenizing
Don't call System.exit() in a launcher step; throw something instead.

At least don't use exit() for a normal completion.  That prevents
streaming multiple commands.
Add missing license reference, handle blank lines
Recreate OptionGroups each time they are used.

It's not obvious from the Commons CLI documentation, but an
OptionGroup stores command state, specifically which of its member
options was given.  This causes mysterious exceptions when you reuse
an OptionGroup.

I suspect that Option objects also contain command state, but haven't
run into trouble with that yet.
Update version from 11-year-old commons-cli 1.0 to latest 1.2
merged mwoodiupui's DS-1083 branch