Rework the option parsing

Now, the option parser works on lists of strings.

Previously, the option parser worked on the format returend by
init:get_argument/1, but to go from a list of strings (in protoc-erl)
to that format also meant a bit of parsing to find out what was
options and what was arguments, so inevitably, there was similar
option parsing code in protoc-erl and gpb_compile.

The list of strings is a much lower common denominator, and parsing
options from that format instead takes away much of the code
duplication.