Tightened the let and const tests, version 2  

This is an alternative to #164. This simply does the following:
* The `const` test now checks that reassigning to the const is a syntax error (I consider this not a "pedantic" detail but a major aspect of `const`, and even though Firefox has for years made reassigning const a mere silent error, I think such an implementation should be rejected.)
* The `let` test now only contains anti-hoisting checks (for blocks and for-loop heads)
* A new test, "let/const temporal dead zone", contains the TDZ checks for both.
* A new test, "let (for-loop iteration scope)", checks that for-let creates new bindings on each iteration.

This does not include the following "pedantic" checks:
* `const x;` is a syntax error
* `let x; let x;` is a syntax error
* `for(const x = 1; ...)` is not hoisted
* `let` and `const` do not require the `application/javascript;version=1.8` tag attribute
* `let` and `const` do not require strict mode

Those last two are quite important, but, as has been dwelt upon, they end up masking partial implementations of core functionality (and should probably be treated on the same level as Chrome's #enable-javascript-harmony flag). Until better means of representing partial functionality are available, they must be held off for now.