Protect private definitions by the GEANY_PRIVATE macro in headers

In addition, this patch defines the GEANY_PRIVATE macro for the tag
manager library where it wasn't defined before, removes 2 tag manager
headers from distribution as they are not needed by plugins and
in the tag manager changes the docstrings to ordinary comments for
private definitions.
Fix doxygen warnings

Make documents_array public and accessible by doxygen and describe all
parameters of tm_source_file_new().
Define the GEANY_PRIVATE macro for tag manager in makefile.win32
Add all headers to libtagmanager_a_SOURCES in tag manager makefile

So they become part of tarball.
Merge pull request #351 from techee/guards

Protect private definitions by the GEANY_PRIVATE macro in headers
Small update of German translation
Rename internal plugin_init() to avoid confusion with plugins entry point
Explicitly list symbols to dynamically export

Uses a Python script to generate a listing used by the linker to
determine which symbols to dynamically export. This provides finer
grained control of which symbols are dynamically exported, limiting
only to the ones needed for GtkBuilder signal connections.

The build system integration could probably be done a little cleaner.
Mark all plugin API functions to have "default" (public) visibility

Adds a new header `pluginexport.h` to put the macros in, could be
moved into an existing header (support.h?) by I didn't want to drag
a bunch of existing stuff into the source files for this one macro.

TagManager has relative include, this could be fixed by changing the
include directories for it if it's a problem. Mark the Scintilla
functions exported by re-declaring them in sciwrappers.c with the
attribute to avoid changing upstream Scintilla code.
Change to GEANY_EXPORT_SYMBOL for callback functions

This allows them to be dynamically exported when -fvisibility=hidden
is applied.

TODO: remove the CFLAGS hack in configure.ac
Remove redundant GEANY_EXPORT_SYMBOL usage in callbacks.h

It only needs to be specified in one place for each function.
Remove struct/macro/funcptr linkage control for plugin API

Add rest of headers needed for declarations of all public API
functions. Add HAVE_PLUGINS define to geanyplugins.h since some headers
need this and it should always be valid for this header.
geanyfunctions.h left for source-level backwards compatibility for
plugins which might `#include` this header directly. I don't know why
they do it, but some Geany-Plugins do this.
Move Geany's core into a library (libgeany)

This will allow plugins to link against the core when accessing API
functions, now that the macro/struct/funcptr stuff is gone.

Also convert the helper libraries into Libtool helper libraries as
linking a shared library against static libraries is (apparently) not
portable.
Improve Autotools build system for libgeany

Checks if the compiler supports -fvisibility and the linker supports
-dynamic-list arguments and use them instead of hardcoding. The new
geany-lib.m4 also accomodates future use of Libtool versioning.
Replace dynamic exports with codegen for GtkBuilder callbacks

This prevents having to export those callbacks and put them in the
global namespace. Also, use inline shell script in Makefile.am instead
of a Python script which should be more portable (by default) and gets
rid of the helper script.
Don't export GtkBuilder callbacks anymore

They are connected inside the library now rather than using GModule to
find the symbols. Mark local callback handlers as static since they
aren't global or exported anymore, they should be static. Since they're
static now, all of the forward-declarations of the functions local to
callbacks.c are pointless, so just remove them.