Hide internal symbols

With gcc, clang and other compilers, symbols are exported per default. The
symbols in discid_private.h, sha1.h and base64.h are for internal use only, so
they are hidden from now on.

Signed-off-by: Sebastian Ramacher <sramacher@debian.org>
Merge pull request #13 from sebastinas/hide-private-symbols

Hide internal symbols on Linux and possibly Solaris/BSD.

They are not part of the API.
fix visibility warning on cygwin, re #13
Handle LIBDISCID_API for mingw and cygwin

Also move config.h include to the top of disc.c so that the functions are built
are marked as dllexport while building the library.
Use winver.h instead of Winver.h
Honor visibility in src/base64.c

Signed-off-by: Sebastian Ramacher <sramacher@debian.org>
Merge branch 'hide-private-symbols'

Conflicts:
	include/discid/discid.h
simplify windows dllexport again

declspec seems to be the "standard" way on Windows.

Adding the __attribute__ version didn't make a difference.
I was just testing wrong (with nm, like on Linux).

The correct test was:
ojbdump.exe -p libdiscid.dll | grep -A 30 "Ordinal/Name Pointer"