> no underscores in js

`getopt_long` just doesn't look like `getopt_long` when it's `getoptLong`, but point taken. I think it must have been looking at all that C while prepping for this patch that made me lapse. I'll just name it `Getopt` for now.

Considering `TGetopt` to reduce name collisions just in case this escapes traceur.

----

I can't really take credit for the overall api design, obviously. The getopt api does have some quirks, but mostly it tries to do one thing well, leaving the rest up to the program.

There were some other libraries, but only two implemented anything like the actual getopt api, and there wasn't as much flexibility as I would have liked. If this takes more than 200 lines of code to implement, then maybe it might be worth looking into patching those libraries. I don't really see that happening though (famous last words).

----

The intent was just to write something to see how well it worked. I don't know for sure that this is the thing to replace commander. Opt parsing isn't the main point of traceur, so I'll accept anything that doesn't make us bend over backwards.

Any api that doesn't use callbacks is probably going to be a lot easier to use flexibly. (It's easy to transform non-callback code into callback code, but not vice versa).

In terms of implementation, getopt is an extremely simple api design. It doesn't try to be as smart as commander, but in return, it doesn't take as much effort to code up. So even if it doesn't end up being used in traceur, I'm not out too much time (coding-wise).

----

An example of getopt simplicity vs commander smarts.

```bash
# The 'commander.js' policy of handling options with optional args
# can be problematic. Optional args cannot begin with '-' if they're
# in their own argv element, but this is okay with '=' in the same
# argv element. In addition, unknown options are assumed to take
# optional args.

# 'free-arg' gets swallowed, so does 'free-arg2' unless you add a
# '--'. That's why we end up having to use a lot of '--' currently,
# even for non-interpreter option parsing.
program --mistyped-opt free-arg --real-opt free-arg2

# The 'getopt' policy is that options with optional args are always
# attached to the option, and unknown options do not take optional
# args.
program --mistyped-opt free-arg --real-opt=optional-arg free-arg2
program --mistyped-opt free-arg -ooptional-arg-for-o free-arg2

# Options with required args can take both forms:
program --required-arg-opt=arg
program --required-arg-opt arg
program -oarg
program -o arg
```