Es7 compatible Array#contains

Change Array#contains implementation to be compatible with ES7, passes almost all the tests
I had to change one because otherwise it would have break other tests as it was tinkering with the Number.prototype (I just made it more generical, it passes it anyway).

I left out 2 tests which this implementation passes but cannot be tested as they require Symbol to be implemented in the browsers

Also it doesn't pass the enumerability test as implement and extends should be updated to use Object.defineProperty in order to pass that.

I don't think we need to force back the old implementation for compat as it cover the old behaviour with the single exception that it can find NaN as well.
I haven't read the spec, but do you have to consider sparse arrays?