[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'
fix hardcoded db name in dspace-info.pl
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
Merge pull request #163 from mwoodiupui/DS-1083

[DS-1083] Create new users from the command line
[DS-1567] Stream multiple commands into one invocation of bin/dspace
Merge pull request #185 from helix84/dbname_dspace-info.pl

fix hardcoded db name in dspace-info.pl
More informative message when an Identifier cannot be created

Tag the IdentifierException onto the new RuntimeException instead of ignoring it.