Converted services to use promises instead of event emitters

Converted services to use promises instead of event emitters.

Cleaned up some code.

Implemented some temporary solutions for stopping Mapbox pop-ups from calling undesirable state changes.