Always manage local_settings.py

If $compress_offline is false, local_settings.py becomes unmanaged
by Puppet. This is clearly wrong.

Move local_settings.py file resource out of condition and
establish notification relationship conditionally to $compress_offline
instead.

Closes-bug: #1383473
Change-Id: Ia7e4bc8e8f74c62ac624056883fb8c2910e2fe09
Use concat to manage local_settings.py

Manage local_settings.py content with concat::fragment.

This adds the ability for anyone to add custom fragments
to local_settings.py without having to override the template.

Example on how to use concat::fragment:

  concat::fragment { 'local_settings.py:custom':
    target  => $::horizon::params::config_file,
    content => 'HORIZON_CONFIG["customization_module"] = "my_project.overrides"',
    order   => '90'
  }

The use of puppetlabs-concat does not break backward compatibility
for those establishing relationships with the file resource
that used to be local_settings.py. puppetlabs-concat still declares
a file resource matching the concat resource title when
a concat resource is created.

Conflicts:
  spec/classes/horizon_init_spec.rb

Closes-bug: #1383500
Change-Id: I97e747c967dddc04b62ff1d31440e42a26dcb3ff