use sudo to run puppet apply

So when I have a user with sudo access I dont need to be root.
Make sure modules are installed
run rake tasks
bail out if a command fails

ie if syntax tests fail
add useful comments
Make sure gems are installed.