Support webkit gamepad api
Review changes
Fix invalid usage of Math.floor + simplify code

First:
Math.floor(3.2) -> 3
Math.floor(3.7) -> 3
Math.floor(-3.7) -> -4
Math.floor(-3.2) -> -4

Second:
3.2|0  -> 3
-3.2|0 -> -3

So, behaviour of these approaches are DIFFERENT on negative values. So:
http://stackoverflow.com/questions/596467/how-do-i-convert-a-number-to-an-integer-in-javascript

src/analyzer.c: simplified code.
src/library.js:
* Simplify code, potentially fix bugs with negative time values in many places.
* FIX bugs in handling of negative numbers in modf(), modff() and div()

Simplify code for other functions where we need integer part of floating-point number.
Support for array attributes in WebIDL bindings.
Bounds-checking for array attributes.
Embind: Allow the cloning of pointers scheduled for deletion
Embind: support nulls in embind_repr()
Apply patch from upstream libc++ bug 18735: http://llvm.org/bugs/show_bug.cgi?id=18735 to fix self-assignment operators of std::map, multimap and unordered_map.
Add test for std::map self-assign.
Add a note to readme.txt for libcxx to remind about backported std::map self-assign fix.
Bump version to 1.22.2 to ensure the previous patch is applied.
Merge pull request #2688 from juj/libcxx_map_selfassign_fix

Libcxx map selfassign fix
docs updates
Update the simd.js

It is based on version https://github.com/johnmccutchan/ecmascript_simd/blob/14aa231d3c1021695ecee467ef35e5d61c8c669e/src/ecmascript_simd.js

Changes:
46620fd Add type check into SIMD operations.
1f29859 Fix float64x2.clamp implementation and add test case for it.
22b8ccf Use object properties instead of typed array as storage in polyfill
8941215 Changed conversion operators from SIMD.XXX.toYYY() to SIMD.YYY.fromXXX(), added 'select' operator for all types, added/updated tests
3eaaf69 Added reciprocal, reciprocalSqrt, shuffle, shuffleMix, comparison, and select operators to SIMD.float64x2
6f68238 Added SIMD.float64x2 (abs, neg, add, sub, mul, div, clamp, min, max, scale, sqrt, withX, withY, SIMD.float32x4.toFloat64x2)
Update SIMD.js code generation due to API update.
disable test_readdir in non-emcc
limit the size of the test runner library cache name, to avoid OS limits
update sockets.test_nodejs_sockets_echo
benchmark runner fixes
Merge pull request #2690 from waywardmonkeys/upstream-embind-changes

Upstream embind changes