* Config: fix don't create empty dir when resolving path
* refactor migration of default config file
* gracefully handle src == target on Move
* create target directory on Move, if necessary
* unify resolution of default config location
* refactor the use of flagSet to be explicit
* remove package variable
* use empty config file path setting if not set in flags
* resolve default file location the same way when showing the target and
when loading default config file
* don't migrate if target file is the same as source
* rename configfile to configFile
* add migrateConfig tests
* refactor use of global Bot
* make the dependency on having an existing running Engine more obvious
* use explicit dependency of engine in RPCServer
* reduce static dependencies in rpcserver
* improve helpers
* revert bad document update, add check for nil error in test
* add basic start stop test
* fix race condition in storage
* skip the test because of race conditions
* fix typo
* add empty line
* add data directory to config.json
* fix quality check issues
* adjust data directory only when explicitly set
* unexport ValidateSettings
* process flags earlier so they can also be used when loading config
* fix test depends on flags
* rename config.DataDir to DataDirectory
* also don't omit in JSON if empty
* datadir flag induces dry run
* log warning
* enable parallel for sub tests
* leave data dir empty in example config
* remove parallel for loadConfigWithSettings
* create a new config object instead of using a shared one
* remove a test that potentially reads user file
* rename test methods to MixedCaps
* clean up test dir after engine tests
* use global config variable