Use strict, remove license comment from files, use multiple vars, use node.type not node.constructor.name

This is just some general code cleanup.

Strict mode is awesome, so we should be using it as much as possible.

One `LICENSE` file in the root of the project is sufficient, we don't need it at the top of every file.  We also don't need a comment to say that the `require` calls are loading module dependencies.

Multiple vars are easier to read, easier to edit, and less error prone.  I haven't changed this everywhere, but I want to begin moving in that direction.

Constructor names get minified by UglifyJS, there is no good way around this except to not rely on that feature.  In my opinion this makes for cleaner code anyway.