Switch to using concat{} instead of lots of file{} magic.

Taken from #136 and rebased. I removed the formatting changes to make things a bit easier to read.

Note this question from the previous PR was left outstanding, if anyone has an opinion please let me know.

> Should I automatically delete autogen.conf as part of these changes so that you don't end up with duplicate entries or would you prefer that users do that themselves?
> 
> I lean towards a new file{} for autogen that deletes the existing file

Resolves #135 
Resolves #136 
Resolves #159 

Still to do:
- [x] Fix current tests on 1.8.7
- [x] Delete existing `conf.mail.d/vhost_autogen.conf`
- [x] Delete existing `conf.d/vhost_autogen.conf`
- [x] ~~Give the mail config a different filename to avoid clashes with vhost configs (using the same host name for both would affect the same file and compilation would fail)~~ Instead, have excluded mailhosts from sites-available/enabled pattern since mail config is separate from http config
- [x] Add tests for all new functionality (particularly sites-available/enabled)
- [x] Update a few remaining tests for the concat pattern (marked TODO in the spec files)
- [x] Actually test this on a system (!)
- [x] Update rspec-system tests
- [x] Tidy the commits for merging