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
fix bootstrap stylesheets
fix local rhino 1.7r5 path and optimization
update umd

see
https://github.com/oxyc/umd-bestiejs/commit/a1962483baf413107384369f09436657ae289cac
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.
also fix misidentification of scope in function declarations

because code like below does not create a global "a" or "b" variables:

do
	local a = {}
	function a.b()
		-- ...
	end
end

will need to update testcases too.
update functions testcases broken by previous commit
get rid of isLocal variable

its only use has been eliminated, there's no reason to keep it.
fix more scoping bugs

minimal testcases:

local a = {}
function a:b()
	return self -- false global
end

repeat
	local b = true
until b -- false global; this loop executes only once

local a = function (b) end
print(b) -- undetected global

for a in pairs { } do end
print(a) -- undetected global