Making the configuration make heavier use of Puppet

* Synchronizing Git repos using puppet
* Handling folders using Puppet
* Handling nodejs using Puppet
* Other stuff has been moved to a separate .sh script for easier
  editing and error reporting (i.e.: no need for build.log file)
using install_src_pkg
Moving more stuff to Puppet config and annotating the script
2/4 stages
All stages are moved to shell scripts
Forgot to uncomment some lines
Using the master HEAD for ghc and ghcjs
Switch to 64bit vm
Retry sync-all and cabal update
We probably don't want this on 64bit VM (not sure if we need the 64bit one to be linked)
Seems to fix missing git command issue
Try to make sure stages don't run before they should (there is probably a better way to do this).
Make sure cabal patch is only applied once
Something to update .profile to set the PATH and LC_ALL
Increase timeouts for stage 1 and 2
Making sure that we have git installed prior to cloning repositories
Merge branch 'puppetify' of github.com:ghcjs/ghcjs-build into puppetify

- Global Vcsrepo requirement
- Conflicts: manifests/base.pp
- Added: prep0 (.profile)
Merge branch 'puppetify'
Using modified version of generic-deriving so
it plays well with the latest Template Haskell