Make String#to_proc return value allow arguments.

Among other things, this allows binary operators to work:

  (:+).to_proc.call(1, 2)  # => 3

This is most commonly encountered as a result of:

    [1, 2].reduce(&:+)

(Note the ampersand.)
Distinguish between single- and double-quoted heredoc identifiers.

Single-quoted heredoc identifiers do not process the content for escape
sequences.

Added tests to ensure:
  * Escapes not processed in `<<'EOD'`
  * Escapes are processed in `<<"EOD"`
  * `<<EOD` is processed as `<<"EOD"`
The Specpocalypse: Reorganize spec structure.

This is large, complicated, and requires some explanation.

 * Rubyspec updated to master, now in `spec/corelib`
 * stdlib tests that were removed from rubyspec now reference their counterpart
   repository in rubysl.  These live in `spec/stdlib`
 * Filters have been moved from `spec/opal/filters` to `spec/filters`, as they apply
   to rubyspec and rubysl specs.
 * The base directory in the rake tasks have changed from `spec/opal` to `spec`, therefore
   a few paths had to be modified, namely ERB template paths.
 * The `rubyspecs` file now lives in `spec`, and have to specify paths relative to itself.
   This file specifies files in either `corelib` or `stdlib`
 * `rubyspecs` has been edited to omit tests that Opal was previously able to parse, but
    can no longer.  These are only omissions related to `SyntaxError`.  An unfortunate
    amount of coverage has been lost here.
 * `spec/filters/uncategorized` has been created.  These contain specs that now fail due to
    upgrading rubyspec, or new specs in rubyspec that fail.  Some of these are re-wordings of
    specs we pass.  No attempt to match these strings with existing filter strings has been made:
    this will be a project onto itself.  No editorializing has been attempted, except to
    allow the Time specs to fail, which have never passed on my machine.  The intent is, these
    entries  will dwindle in the future as bugs are fixed, or they are explicitly moved to `bugs`
    or `unsupported`.
Merge pull request #528 from mieko/spec_tacular

The Specpocalypse: Reorganize spec structure.
Merge pull request #526 from mieko/heredoc

Distinguish between single- and double-quoted heredoc identifiers.
Support splat args to rescue statements.

Add support for:
  rescue SomeError, *expr

Exception matching has been moved to Opal.$rescue to generate more concise
code for the now-more-complicated logic.

Also closes #508
Hash fixes: low-hanging fruit.

  * Hash#delete accepts a block for default value
  * Hash#default= and Hash#default_proc= unset their counterpart.
  * Hash#merge/Hash#update try to coerce with :to_hash
  * Hash#== Checks for value existence in rhs before comparing
  * Hash[] throws proper errors for more malformed argument list "geometries".

Also closes #522 (value existence on rhs)
Merge pull request #515 from mieko/master

Make String#to_proc return value allow arguments.
Merge pull request #524 from mieko/hash_default

Hash fixes: low-hanging fruit.
Merge pull request #523 from mieko/rescue_splat

Support splat args to rescue statements.
Changed expect_compiled to be just a wrapper around Opal::Compiler
Compiles require into Javascript as a no-op
Added "requirable" to compiler options to mark files for future requires
Enter New Builder
Cleanup path_finder stubs
Add path_finder lint shared example
Fix requires in spec/cli
Add path_reader and hike_path_finder
Let require be compiled to js
Add require support to runtime/kernel