Added ability to set open file descriptor limit at run-time

Instead of running `ulimit -n` from init script, we could utilize the POSIX `setrlimit(2)` system function and set the open file limit dynamically at run-time. 

To do this, I added an optional config file variable called `nofile`. If `nofile` exists in the config file and it's value is greater than 0, then we will try to set `RLIMIT_NOFILE` when server starts. 

Please note that on Linux, only privileged user could raise the hard limit, that's why we need to call `setrlimit(2)` before calling `run_as`. Upon failure to set `RLIMIT_NOFILE`, we simply output some helpful error message and keeps going. 

Tested and confirmed to work on Linux 3.15.4 and Mac OS X 10.9.4. 

Support of `setrlimit(2)` was added since Linux 2.6.36 and 4.2BSD.