Revamp build steps

* Instead of providing the binaries with the package, it'll only download the
needed binary for the users system.
* Will only build if the tests fail.
* Move `build.js` into scripts since it's not part of the actual API.
* Move binaries to `vendor` folder to keep it separate from the rest of the code.

Fixes #504.
Merge pull request #509 from kevva/new-build

Revamp build steps
Submodules: Updated submodules. (#510)
* Additions in the binding.gyp.
* Updated CLI test for line endings.
* Updated Appveyor.yml as per @FeodorFitsner's
  suggestion.