Add ENV_DIR support

Prepare buildstep to support the ENV_DIR feature that allows usinge the configuration variables during the compile phase. This change will need a change to dokku to put split the ENV file and insert it into the container as separate files.

This also makes the sourcing of the files in the .profile.d directory only take `*.sh` into consideration, matching the way that Heroku works.

See https://devcenter.heroku.com/articles/buildpack-api#bin-compile-usage for details on the ENV_DIR feature.

This implements #101 but also writes the config_vars to `config_vars.sh` so that defaults from the buildpacks get honored. That should be OK since the config_vars don't overwrite existing environment variables anymore.

This commit is a combination of #99, #100 and #101 adjusted slightly for the new builder structure.
Source profile.d for interactive shell
Run as non-root user

Generate a random user on each deploy and run the compile step as well as the final application with this restricted account. This should solve the problems with the permissions in the PHP buildpack and the Bundler warning in the ruby buildpack.

References:
  * #88 - security?
  * #98 - Run apps as non-root user, take 2
  * #42 - Allow apps to run without root
Merge branch 'feature/run-as-user' into develop

* feature/run-as-user:
  Run as non-root user
  Source profile.d for interactive shell
  Add ENV_DIR support