7649 api key settings

DO NOT MERGE.

The current branch prioritizes the engine settings in the current implementation. I think it would be desirable to be able to override engine settings in the application, instead of the other way around, but don't have a particularly great way of doing that right now. 

I wanted to have some discussion about it before putting any serious work into it; but don't think this should be merged to ```develop``` until it is done.