fix misdetection of global variables (issue #4 cont'd)

in table accesses like x:y().z (`prefixexp` in Lua grammar)
y and z are not references to variables, global or local;
they are table keys. likewise in table constructors like
local x = { y = { z = 5 } }

also, fix mistakenly allowing code like:

local x = {
	2 3 "string" -- no delimiters!
	z.w = 3;
	y[t[s]] = 11;
}
update testcases to match parser output

misdetected globals have been removed, while AST nodes corresponding
to table key names in prefixexps no longer have an "isLocal" field at all.

new tests have been scaffolded
do not mix standard error into standard output for narwhal and rhino

narwhal likes to output \e[0m at the very beginning of standard error,
even when given a --no-term option. this makes whatever testem uses
for parsing TAP protocol not recognise the very first passing testcase,
which causes "MISSING TEST" errors.

alternatively one could print a dummy line inside the test runner,
but this solution seems neater.

why did stderr need to be mixed with stdout in the first place anyway?
why does narwhal munge with terminal escapes unasked? how hard is it
to type reset? or better, get your escapes straight in the first place?

javascript kiddies. i could rant more, but this commit message is
already larger than the patch itself.
Version 0.1.5