High: nfsserver: Re-structure how locking daemons are handled

Previously the nfsserver agent took in what binary to use
in order to send the NSM lock notifications. We don't need to know
what binary to use. It only makes sense to use sm-notify if rpc.statd
is already running as sm-notify re-notifies the clients of a change.
If rpc.statd is down, it has to be started for NSM locking to occur.
By default rpc.statd is going to invoke sm-notify on initialization.

So, if rpc.statd is down. We use rpc.statd to notify on start.
If rpc.statd is up, we use sm-notify to re-notify clients.

I've also made the nfs_ip argument optional. There are use-cases
where we do not want to bind rpc.statd to the floating ip. If no
nfs_ip is specified, rpc.statd binds to the wildcard address.

One more change to rpc.statd has been made. I removed the ability
to accidently execute rpc.statd in the foreground. rpc.statd never
returns. It is a daemon... This would cause start to timeout if
anyone ever set this option and rpc.statd was used to notify
the clients.
Low: nfsserver: better nfs init script auto detection