core/path: fix a leak in success path

... and use automatic cleanup.
core/path: use automatic cleanup

... and fix bogus return code on malloc failure.
core/path: modernize style
core/path: catch errors when adding watches

Errors because of oom conditions or descriptor exhaustion should not
be ignored. We probably cannot recover from those conditions.

Current behaviour wrt. insufficient permissions is described in the
man page. It might make sense in case of user sessions, so I left
it as is.
core/service: use cleanup functions, wrap lines
journald: do not barf when setting RateLimitInterval=0

Assertion 'interval > 0 || burst == 0' failed at src/journal/journald-rate-limit.c:78, function journal_rate_limit_new(). Aborting.