Create modular command infrastructure.

Commands subclass the abstract base class Command.
Let 'dump' command use default trace dir
Move parse_option into Command
Reject attempt to record things that look like options
Reject attempt to replay something that looks like an option
Move replay code from replayer.cc to ReplayCommand.
Remove replayer.h/.cc
Move recorder.cc code to RecordCommand
Move prereq-checking invocation from main to individual commands so we don't spew warnings for commands like 'dump'
Fix parse_optional_trace_dir to return a string
Make ReplayCommand use parse_optional_trace_dir
Make 'dump' command flags private to the command
Make replay flags private to ReplayCommand
Move recording flags to RecordCommand