remove pointless .isLabel field

validating labels at this point makes no sense; it's only after
parsing is complete that any meaningful analysis is possible.
for example, the first goto will have .isLabel set, and the other
not, even though both are valid:

::foo::
do
	goto foo
end

do
	goto bar
end
::bar::

also, update testcase.
add ast member to options object

very handy when you only want to hook some parsing events on
the fly while leaving the AST untouched.
use console.warn instead of console.log

node.js's console.log() shim outputs to stdout, which means that
notices end up mixed with source code when doing make scaffold-tests
console.warn outputs to stderr, avoiding the issue.
detect more syntax errors (issue #24)

unfortunately it's necessary to peek the outputted AST to accomplish this, which may be unreliable. the same kludge is already used in isCallExpression()

the "caller can supply their own AST construction methods" feature probably needs to go. either that or some parsing functions need to return two values: one for the constructed AST and some for internal use - that would be rather wasteful.

benchmarks	docs	      luaparse.js   SciTE.properties  testem.yml
bin		examples      Makefile	    scripts
bower.json	Gruntfile.js  node_modules  static_test
component.json	index.js      package.json  static_test.lua
dist		LICENSE       README.md     test
fix testcases broken by previous commit
fix EBNF syntax in comments
fix lexer example (issue #25)