Implement traceur.require Fixes #239

This adds a `require` method to the `traceur` object (in Node.js only) which allows you to require js files that go through traceur just like you would require any other js file in Node.js.

```js
var traceur = require('./src/node/traceur.js');
var x = traceur.require('./x.js');
```

or

```js
var traceur = require('./src/node/traceur.js');
traceur.require.makeDefault();
var x = require('./x.js');
```

Fixes #239

Closes #270
Fix 'runtime-modules.js' pulling in almost all of traceur.

This is a follow up to ab1ad6ab676ae46e71b942050b5f4a617973a42a

Now 'src/runtime/runtime-modules.js' only contains the minimum needed
to handle 'getModuleInstanceByUrl'. This means that, except for
'src/util/url.js', we really can import from standard modules during
'traceur' load.

In addition, as before, compiled code can do the same thing, but now
with the minimum amount of extra runtime weight.

Closes #275
Implement a 'getopt_long'-style interface. Use in 'expand-js-template.js'.

The behavior is similar to 'getopt_long' with
- 'optstring' param starting with '-:',
- 'opterr' set to 0, and
- 'optind' set to 2

See 'man 3 getopt' for details.

'argv' is not permuted. No errors are printed. For code simplicity,
'-o' and '--o' are considered equivalent. Abbreviations implemented.
'--' not implemented for now (easily done in user code).

Closes #262