Replace setTimeout() hacks with promises
Rename directives
Move child directive functionality out of mapbox directive