Add naive method to invalidate nscd caches when databases change

TODO: Check whether system has nscd and whether it is running
Check that `nscd` exists before trying to do anything
Don't use shell to run nscd

Not needed, crept in due to copy-and-pasting.
Use pgrep to check if nscd is running
Improve flow of conditions

This seems easier to understand.
Improve logging

Clarify what is being done at each step, don't give to much detail in info, use debug for this.
Use debug instead of info

As discussed with @ned21, only log if nscd caches actually are invalidated, everything else is debug.
Remove newlines from logging

As disucssed with @sdtweird, these came from copy and pasting code.
Check that exit codes are zero

Rather than they are not one, this is more readable and should be more robust.
Clarify log message

Explain better why we are not invalidating the cache.
As suggested by @stdweird.
Specify pgrep as a dependency

As suggested by @stdweird.
Replaces previous build section.
Check full path for nscd with pgrep

This should avoid catching nscd if running from a binary in another location and allows reuse of previous declaration of the path to nscd.
Return whitespace to spaces

Accidentally copied in tabs from another pom.
Use constant for path to nscd binary

I would use Readonly, but this module is full of constants already.
Redirect stderr and don't log stderr or stdout

They will be undefined (which causes warnings) if they are empty and the output isn't helpful anyway.
Be specific about which cache we are invalidating

We may want to invalidate other caches in future (sssd for example).
As suggested by @stdweird.
Merge pull request #278 from jrha/accounts-invalidate-nscd-caches

ncm-accounts: Invalidate nscd caches when databases change
Merging my own code because @stdweird said it was ok.