Fix preferences being reset to defaults when app initialized with empty cache

When starting an application with an empty cache, preferences which are accessed at startup have incorrect (default) values.

I added some good old fashioned printf debugging at freerunningtech/spree@b9a705f4b9b442bae6d733f29cce0ef9970c39cf. With this and an empty cache I get the following when running rake environment in sandbox: ([Full output](https://gist.github.com/jhawthorn/6849082))

    get("/spree/app_configuration/currency")
      should_persist? false
      = USD (fallback+saved)
    get("/spree/app_configuration/override_actionmailer_config")
      should_persist? false
      = true (fallback+saved)
    get("/spree/app_configuration/enable_mail_delivery")
      should_persist? false
      = false (fallback+saved)

`should_persist?` is always `false` at startup because `Spree::Preference.connected?` is `false` until an attempt is made at accessing the database. This causes the default values for settings to be used even if they were set preferences. Those values were then written to cache, resulting in the incorrect settings continuing to be used which is *extremely* bad.

My first commit (9fb53da) reverts 9ca8ef9, which is incorrect as it uses the default values for all startup settings. This commit alone fixes the issue. This may break asset compilation on heroku in rails 4, but IMO this was not the correct fix and it's much more important to load the correct settings.

The second commit (deafc0d) prevents writing the fallback values to cache if persistence is disabled. Which was exacerbating the other issue.

(Related #3785)