Port Atom's Build System

This PR ports the build system from Atom, but making it more generic (and removing most of the hard-coded uses of the name 'atom'). All of the parameters given in the build are now built around fields in the package.json, the most important ones being `name` (a name for your app's build stuff), and `productName` (your executable name i.e. Atom.app).

Note that this PR doesn't change the name of "Atom Helper" because it is currently hard-coded into Atom Shell (this can most likely be fixed too however). This PR creates the dumbest Atom Shell app possible - in future PRs we'll build a bit more of a framework around windows:

![](http://cl.ly/image/2N3D1F2E060A/content#png)