Ignore ordering in hosts_to_site_abbrs

`test_hosts_to_site_abbrs_when_a_host_appears_twice` has started to [fail](https://ci-new.alphagov.co.uk/view/Transition/job/govuk_transition-config/2367/console)
[intermittently](https://ci-new.alphagov.co.uk/view/Transition/job/govuk_transition-config/2369/console) [in](https://ci-new.alphagov.co.uk/view/Transition/job/govuk_transition-config/2373/console) [CI](https://ci-new.alphagov.co.uk/view/Transition/job/govuk_transition-config/2374/console) due to differences in ordering between the actual
and expected output, but only when it is run on the new ci-slave-5
(which is Trusty, not Precise):

```
expected: {"one.local"=>["one"], "alias1.one.local"=>["one"], "alias2.one.local"=>["one"], "two.local"=>["one", "two"]}
actual:   {"two.local"=>["two", "one"], "one.local"=>["one"], "alias1.one.local"=>["one"], "alias2.one.local"=>["one"]}
```

We don't care about the ordering here, in fact, so this commit uses
sets as the values in the output rather than arrays. With this change,
the test considers the output to be equal no matter which order the
files are read.

(We don't know why files are now being read in a different order,
but it has revealed an assumption in our code which was unnecessary.)
We shouldn't need to care about the ordering anywhere; [`Hosts.validate!`](https://github.com/alphagov/transition-config/blob/master/lib/transition-config/hosts.rb#L46-L56) cares only about the case of the keys (hostnames) and the number of elements in the values (site abbrs). Using an arraying implies that the ordering is significant, and also places that implicit constraint on the tests. I think that using sets makes it clear that we don't care about the ordering at all.

We could also write the expected output in the test with `Set.new(['one'])` rather than `['one'].to_set` if you'd prefer, but we thought it was a bit easier to read like this.