Fix: Travis CI build, too old CMake on Travis
Added macros to explicitly define .so symbols visibility on 3 compilers
Renamed old LIBSOKOENGINE_DLL_API to new LIBSOKOENGINE_API macro.
Refined .so symbols visibility for most of the core module.
Refined .so symbols visibility for game and io modules.
Refined .so symbols visibility for variant module.
Specs code reorganization and some cleanups.
Hidden remaining symbols in variant module.
Built libsokoengine OBJECT library so tests can see hidden symbols.
Merge branch 'feature/so_symbols_visibility' into development
Added GameBoard::resize_and_center
PuzzleEditor now works on copy of GameBoard.
Created GameBoardEditor and delegated GameBoard editing from PuzzleEditor.
Removed metadata editing from PuzzleEditor

This complicates implementation of undo stack. It would be nice to have it
here, maybe it can be returned at later stage.
Removed model changes tracking from PuzzleEditor.
Removed local QToolbar from PuzzleEditor
More icons
Interface for document workflow in PuzzleEditor.
PuzzleEditor workflow in MainWindow
Moved Undo/Redo actions out of MainWindow