various fixes for the addwatcher command and rlimit settings

- change the rlimit json value to indicate RLIM_INFINITY to None to
avoid any platform weirdness with using -1 as that value, which
isn't guaranteed. A convenience function in config.py handles that
logic
- have the addwatcher command build an rlimits dict to pass into the
arbiter/watcher in order to get those values actually used (as they
weren't before)
- make sure to catch ValueError in addition to OSError when starting
a process as ValueError will be raised if something goes wrong with
the setrlimit calls, and otherwise we get in a bad process retry
loop that avoids the throttling logic
- add special logic for setting the NOFILE limit that will assume
that the caller wants to use the configured kernel limit if they
pass a null value in order to use RLIM_INFINITY. See the comment
for more details.
Merge remote-tracking branch 'upstream/master' into feature/fix-rlimits-addwatcher
Merge pull request #832 from wynnw/feature/fix-rlimits-addwatcher

various fixes for the addwatcher command and rlimit settings