Assert typeof node === "object" in marker.apply.

This assertion should be non-controversial, because marker.apply
clearly expects to assign properties of the given node.

However, adding this assertion causes many tests to fail when typeof
node === "boolean".

Issue: https://code.google.com/p/esprima/issues/detail?id=428
Don't pass parseParam to wrapTracking.

The parseParam function is just a helper that returns a boolean value,
rather than a true parsing function that returns an AST node. When
wrapped by wrapTracking, which assumes that the result of
parseFunction is an AST node, parseParam becomes unusable in browsers
that restrict property assignments on boolean values.

Issue: https://code.google.com/p/esprima/issues/detail?id=428
Fix parse error when static class method comes after proto method

This fails to parse:
`class A { foo() {} static bar() {}}`

I'm not sure exactly why the strict branching check was put in place, but we
don't need to do much more than check if the first token is 'static' when
parsing a method definition -- so this works and fixes the issue.

All tests pass, etc

https://code.google.com/p/esprima/issues/detail?id=430
Merge branch 'harmony' into fb-harmony