DON'T MERGE YET: Custom app names, exec paths, etc.

Have a read through the updated readme to see how everything has changed.

The tests seem to be fine on Windows & Mac. I'm currently using this branch as my dependency in my own app (on Windows) and I haven't gotten it 100% correct (it's probably my own code, the final app isn't being opened). 

@edjafarov could you test this for me please? It would be great if you could check that the unpacking of Mac & Linux packages are the same as Windows. 

E.g. if you have a `x.zip` (stored wherever you downloaded it) then it'll get unpacked into `<tmp>/x`. So if there's a file `a.js` at the root, then it'll be at `<tmp>/x/a.js`. 

Also it *should* be assumed that your app is based on `manifest.name` and at the root of your package, e.g. after unpackaging it would be located at `<tmp>/<packageBaseName>/<manifest.name>.app`, `<tmp>/<packageBaseName>/<manifest.name>.exe` or `<tmp>/<packageBaseName>/<manifest.name>` (linux), unless you manually override it.

Related: #23, #25, #35,