add shared glyph cache

Implements a locking shared glyph cache (listed as TODO at https://github.com/mapnik/mapnik/blob/master/src/text/face.cpp#L57-64) and adds a constructor for creating `font_face` objects that use a shared cache.

/cc @springmeyer @artemp