Add View::make_inactive() to remove context from rendering thread

View::make_inactive() is called just before termination of the
rendering thread. The implementation must clear the thread's GL
context.

This ensures there is no context still bound to a thread during
GL shutdown. This is needed as GL will not actually delete a
context until it is not active on any thread.

Fixes mapbox/mapbox-gl-native#340
Adds the function Map::terminate() to allow all GL resources held
by the map to be released immediately.

Map::terminate() will call any GL functions on the current thread
without blocking or defering to the rendering thread.

This function allows a GL context to be destroyed and recreated
safely without having to delete the Map object.

Fixes mapbox/mapbox-gl-native#341
Move notify_map_change() from a global callback, to a callback in
View.

This allows for their to me more than one Map object alive at a
time.

Fixes mapbox/mapbox-gl-native#346
More refactoring of code to allow only surface to be destroyed
Replaces tabs with spaces
Clarify notify_map_change thread safety.
Fix merge marker