Some yield arg-handling improvements

Make Enumerable#all, #none, #one, and #find_index behave to spec in the
case of #each yielding multiple values (also remove zip_tags.txt while
we're in there since it's passing)
check first if canonicalization is wanted before looking if denominator is 1 in Rational
Merge remote-tracking branch 'origin/master'
Fix bug where dregexp would break its own options.

A DRegexp node would construct its Regexp by passing the
RegexpOptions along directly. However, some construction paths
proceed to modify those options, setting "fixed" if the incoming
string is ASCII-8BIT. Because the options were never copied, this
broke the original DRegexp node causing all future regexp to also
be marked "fixed".

I modified the construction paths the interprter uses to always
clone the incoming RegexpOptions.

We should make RegexpOptions immutable in the future, to avoid
this sort of issue.
use expect instead of should for better rspec
add a failing test for overflow in Time#+
avoid NSec going above 10^6 in RubyTime
that should actually be ">=", RubyTime NSec range is [0, 999 999]
Merge pull request #966 from rajcybage/rspec_fix

use expect instead of should in rspec
add a couple Time test to the index
fix for issue #969 (missing string intern for symbols in literal symbol array)
remove doublicated dependency #972
Refactor compiler specs to use 'let','match_array','expect',be_nil'
Fix concurrency issue in constant caching.

Because updating the constant cache for a piece of compiled code
is not atomic (multiple cache structures must be updated) it was
possible for the tests in isCached and isCachedFrom to see a non-
null value in the "constants" array before the invalidation
structures in the other arrays (constantGenerations,
constantInvalidators, constantTargetHashes) were set. This allowed
the first "value != null" check to pass, proceeding to access the
object in constantInvalidators even if it was still null.

By moving the update of the "constants" array after the update of
the invalidation structure arrays, we mostly guarantee they'll be
up-to-date before the value is non-null.

Note that this is not necessarily true given reordering and
volatility on the JVM. The RuntimeCache needs to be reexamined to
ensure happens-before on these particular non-atomic structure
updates.
Merge remote-tracking branch 'origin/master'
Propagate Ruby's cwd to Java via Dir.chdir

Ruby.setCurrentDirectory() is responsible for doing the work.
Ignore SecurityException for now. (Though a warning might be
appropriate.)

Fixes #971.
Maintain 1.8 compatibility in Dir.chdir spec
Revert "Maintain 1.8 compatibility in Dir.chdir spec"

This reverts commit e124632ac52f92d7dccd44e8c906673fc6993ab9.
Revert "Propagate Ruby's cwd to Java via Dir.chdir"

This reverts commit 42198651fe5ead7d14df97641588a9dbf4711e9e.

Need to fix Embedded tests.
Properly look for encoding in first ivar from marshal stream.

Fixes #939.