Force reprint on `null`ing the original

This one adds the ability to force a reprint of a node, when the `original` is
set to `null`.

One of such use cases is a trailing comma in objects and array initializers.
The information about it is not written on AST (rather, it belongs to CST), so
we need just to rewrite the node and the trailing comma will gone.

```
[1, 2,]; -> [1, 2];
({x, y,}); -> ({x, y,});
```
Merge pull request #111 from DmitrySoshnikov/reprint_on_null_original

Setting `node.original = null` now forces it to be reprinted.
Only check newNode.original === null when newNode.value is an object.

Previously we were checking whether newNode.original === null when
newNode.value might have been an array, in which case it would never have
had an .original property.
Bump NPM version to 0.7.4 in preparation for publishing.
Merge pull request #117 from briandipalma/master

Better logging for tab encountered error.
Don't pass untrustworthy strings to `Lines.prototype.concat`.

An untrustworthy string, in this case, is a string that might contain
tabs. This is an alternate approach to #117.
Bump NPM version to 0.7.5 in preparation for publishing.
Update printer for new ES6 module syntax.

This involved upgrading ast-types to 0.5.0 and esprima-fb to
7001.1.0-dev-harmony-fb as well. Since those changes to ast-types and
esprima-fb were considered breaking changes, I think we have to consider
this commit a breaking change as well.

Closes #118.
Closes #119.
Avoid require("recast") in test/es6tests.js.
Bump NPM version to 0.8.0 in preparation for publishing.