overrides native Map if entries() is undefined

relates to #1301
Make sure native symbols work

Do not overwrite the native Symbol if present.

Instead of enforcing that our shim symbols are non enumerable we
now generate code to filter out symbols for for-in loops. This allows
us to remove $traceurRuntime.setProperty since it is now OK to use
the standard browser [[Set]].

For the class runtime we need to iterate over the symbols too.

Fixes #1330
Partial support for destructuring in block binding

This handles patterns in let and const declarations but not yet
in loop headers.

This also simplifies the generated code, in that it does not
hoist a variable declaration when it is not needed.

Issue #1276
Pass file name to traceurRequire to give better error messages.

Adds test for error and its content.
Fixes #1380 using the sugegstion of @spadgos

Review URL: https://api.github.com/repos/google/traceur-compiler/issues/1383

Closes #1383, closes #1380.