Initial commit to add OptionParser to script.

An initial stab at making the interface work with OptionParser. Unfortunately, OptionParser really hates the "-board g" style in favor of "-bg", "-b g", "--board g", or "--board=g". So, if this gets merged, it will change how the script is called.

Except for ARGV parsing, I kept the rest of the script the same, but opted to use symbols instead of strings for our constants. Separating the logic between a required Command (archive, mirror, etc) and an optional Option (board, https, etc) would definitely help in making this more expandable and easier to maintain.