no need to use MAPNIK_DECL with typedefs
make public the singleton template to ensure it can be shared across shared library boundaries if the library is built with -fvisibility=hidden - refs #1826