Style-owned dispatcher and glyphAtlas

Fixes #895
Associate source with style directly

Accessing the style via map.style creates a race condition with
setStyle.

Fixes #886.