fixup play_controller initialization order
define display_context interface, implement in game_board
editor map context implements display_context interface
display uses display_context internally, not 3 private pointers

Also refactor editor and game_display to use this.

To achieve this it turns out we also have to add a "dummy display
context" unique to the editor code, which it can use to initalize
editor display, because after refactor NULL doesn't cut it
anymore. This appears in src/editor/editor_display.?pp, might
want to branch into its own file later.
Merge branch 'add_display_context'
update projectfiles to include display_context.hpp