Basic implementation of @fires tag.

For documenting events thrown by a method.

Related to issue: #364
Render @fires events list as links.

Log warning when unknown event name is used.
Create Js::Fires for auto-detecting @fires.

Looks for this.fireEvent("blah") inside function body.
Also understands me.fireEvent("blah") when me has been
assigned with `this`.
Integrate auto-detection of @fires tag.
Detect this.fireEvent also inside expressions.

Rewrite the AST-traversing algorithm in a more generic way -
just looping over all the subtrees without having the actual
knowledge of what fields make sense to recurse into.
Implement detection of all method calls within a function.

First off it's just a Js::MethodCalls class that's not yet
connected to JSDuck.
Move node body extraction to Node class.
Extract ScopedTraverser class.

Move common functionality from Fires and MethodCalls to
ScopedTraverser, which provides the ability to loop recursively
through AST tree while keeping track of the variables bound
to `this`.
Integrate method calls detection.
Expand @fires with events fired by called methods.

A new processor to recursively populate the @fires list with events
fired by methods called from a particular method,
and by methods called from there,
etc.
Merge branch 'fires' into doc-tags