Updates tests to be mostly TAP compliant. Adds a few tests. One Array fix.

This PR adds a few fixes and repairs tests to run through tinytap, needed for the runtime-qemu rig (and general correctness).

* Updates all non-tap-compliant runtime tests to be TAP compliant, anticipating a switch to tinytap for runtime tests (as it is in runtime-qemu rig)
* Adds / refactors a few tests.
* Fixes an Array splice bug on master.
I don't understand the point of this test: this huge function is never invoked (if it was, you'd know because there is an errant `g` character in that source; it's not a syntax error, but it will treated as an identifier and when executed, the internal [[Get]] will fail.

```js
$ node
> (function() { g })();
ReferenceError: g is not defined
    at repl:1:15
    at repl:1:19
    at REPLServer.self.eval (repl.js:110:21)
    at repl.js:249:20
    at REPLServer.self.eval (repl.js:122:7)
    at Interface.<anonymous> (repl.js:239:12)
    at Interface.emit (events.js:95:17)
    at Interface._onLine (readline.js:202:10)
    at Interface._line (readline.js:531:8)
    at Interface._ttyWrite (readline.js:760:14)
> (function() { g });
[Function]
>
```