Merge pull request #11 from jeffmo/master

Newly defined types for TypeAnnotatedIdentifier and TypeAnnotation
Add a section to README.md documenting iteration and traversal.
Bump NPM version to 0.2.19 in preparation for publishing.
Improve module-related type definitions.
Bump NPM version to 0.2.20 in preparation for publishing.
Allow traversal callbacks to skip child traversal by returning false.

It was always possible to throw an exception to abandon the entire
traversal, but difficult to ignore only certain subtrees.
Improve traversal example in README.md.
Added a more basic traversal example.
Bump NPM version to 0.2.21 in preparation for publishing.
Add basic scope tracking to the Path abstraction.

The plan is to add more methods to Scope.prototype soon, for things like
looking up variable references and identifying free variables.
Implement Scope.prototype.declares, .lookup, and .getGlobalScope.

Scanning happens on-demand, so the scope isn't populated until you query
it via one of these methods.
Bump NPM version to 0.2.22 in preparation for publishing.
Avoid modifying the AST as a side effect of type checking.

This never felt like a great idea, but I finally came across some cases
where it causes actual problems, so it has to go.
Bump NPM version to 0.2.23 in preparation for publishing.
Move Scope into its own file, lib/scope.js.
Ensure proper invocation of Scope constructor.
Add a .delegate field to YieldExpression.
Bump NPM version to 0.2.24 in preparation for publishing.
Implement NodePath as a subclass of require("ast-path").Path.

Pulling in needsParens logic from the Recast lib/path.js file:
https://github.com/benjamn/recast/blob/f9f336fa6e/lib/path.js
Support require("ast-types").someField as an alternative to eachField.

The eachField method is awkward for those times when you want to stop
iterating early.