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
So if the user gives valid ES6 code they get an assert rather than a 'not implemented'?