A bunch of portability fixes, derived from Steve Lhomme's MSVC

Original commit message from CVS:
A bunch of portability fixes, derived from Steve Lhomme's MSVC
patch (bug #141317):
* gst/gst-i18n-lib.h: Allow disabling gettext.
* gst/gstatomic_impl.h: disable warning when it's dumb.
* gst/gstclock.c: fix include
* gst/gstcompat.h: fix variadic macro
* gst/gstinfo.c: fix include
* gst/gstmacros.h: add defines for inlines on MSVC
* gst/gstplugin.c: fix includes
* gst/gstregistry.c: fix includes
* gst/gstregistry.h: use S_IREAD, etc., if S_IRUSR isn't defined
* gst/gstsystemclock.c: fix include
* gst/gsttrace.c: (gst_trace_new), (gst_trace_text_flush): use
S_IREAD if S_IRUSR isn't defined.  fix use of non-portable functions
* gst/registries/gstxmlregistry.c:
(gst_xml_registry_parse_element_factory): fix use of non-portable
functions
* libs/gst/control/dparam.h: Remove trailing comma in enum definition
* libs/gst/control/dparammanager.h: same
diff --git a/gst/gstmacros.h b/gst/gstmacros.h
index 537d90f..6f20ac8 100644
--- a/gst/gstmacros.h
+++ b/gst/gstmacros.h
@@ -32,6 +32,9 @@
 #if defined (__GNUC__) && !defined (GST_IMPLEMENT_INLINES)
 # define GST_INLINE_FUNC extern __inline__
 # define GST_CAN_INLINE 1
+#elif defined(_MSC_VER)
+# define GST_INLINE_FUNC extern __inline
+# define GST_CAN_INLINE 1
 #else
 # define GST_INLINE_FUNC extern 
 # undef GST_CAN_INLINE