Improved dynamic default options performance (#10816)
Improved dynamic default options performance (#10816)

closes #10789

* Updated keypair generation to use a memoised fn

This allows us to embed the members dynamic defaults in the object at
definition, and will allow us to only create the keypair when we need
it, in future.

* Added getDefaultValue fn to default setting obj

This will allow us to generate the default values when they're needed
rather than at boot time.

* Ensured dynamic defaults only generated when used

This replaces all the dynamic default values with functions to return
the values, and then calls (if required) that function inside the
getDefaultValue method of the setting object.

bitjson/Ghost,kevinansfield/Ghost,JohnONolan/Ghost,Kikobeats/Ghost,TryGhost/Ghost,e10/Ghost,janvt/Ghost,ErisDS/Ghost,kevinansfield/Ghost,Kikobeats/Ghost,kevinansfield/Ghost,TryGhost/Ghost,ErisDS/Ghost,Kikobeats/Ghost,TryGhost/Ghost,e10/Ghost,janvt/Ghost,JohnONolan/Ghost,JohnONolan/Ghost,ErisDS/Ghost,bitjson/Ghost