Implement a more robust system for handling (and coordinating) first layout of the maps. Allow listeners to subscribe to first layout event. Change MapController to use this for determining first layout. Updates #22.