rename err() function to avoid clashing with err() form C library

err() is a function available in the C library, so when static linking,
there is a clash at link timebecause the function is provided both by
nbd and the C library:
    http://autobuild.buildroot.org/results/aa8/aa8a1ac35a93e1c8b9fddbc2b5d66ecaa921f31e/build-end.log

Fix that by renaming err() to nbd_err() and providing a small maco
wrapper to avoid touching the many call sites.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
Upstream status: hack, not submitted.

diff -durN nbd-3.11.orig/cliserv.h nbd-3.11/cliserv.h
--- nbd-3.11.orig/cliserv.h	2015-05-25 12:27:56.000000000 +0200
+++ nbd-3.11/cliserv.h	2015-08-13 19:28:21.609467505 +0200
@@ -75,7 +75,8 @@
 void setmysockopt(int sock);
 void err_nonfatal(const char *s);
 
-void err(const char *s) G_GNUC_NORETURN;
+void nbd_err(const char *s) G_GNUC_NORETURN;
+#define err(S) nbd_err(S)
 
 void logging(const char* name);
 
