Initial work to remove root requirement

This is the first part of removing the need to run shiny-server as
root. Importantly, there are scenarios that still require running
as root: 1) the presence of any user_apps directive, 2) any run_as
directives that specify a user other than the shiny-server process
owner, and 3) the usage of ports lower than 1024. In these cases
we need to allow the user to run as root (although in case #3 it's
possible that we could drop privileges once the server is started).

This commit implements the following:

- Error on config load if insufficient permissions for config
- Only use su in app-worker if necessary
- Refuse to launch an R process as root

See TODOs at top of config-router.js for remaining work.
Detect non-superuser trying to listen on port <1024
More extreme load testing
Merge branch 'master' of github.com:rstudio/shiny-server
Merge remote-tracking branch 'jcheng5/no-su'

Conflicts:
	lib/router/config-router.js
	lib/worker/app-worker.js
Fix socket permissions for non-root