ELF doesn’t support exporting data from shared libraries, only functions

The GCC/ELF version of the macros introduced by commit
9f30da1f4549898f941d3dd18e1a9d7b1fc1b84e only work for functions, so
text::gc_cbEncChar needs to be moved inside the only function using it,
text::get_encoding_size(), which must be in turn split into declaration/
definition, the latter finally defining the former text::gc_cbEncChar.
Merge remote-tracking branch 'origin/vs2010'

Also add a GCC flag that makes shared library support more effective by
hiding non-public symbols.