Fix host validations

Rails makes it far too easy to think we're doing validation right
when we're not:

- `validates` is used with ActiveRecord's pre-defined validation
  helpers, such as presence: true
- `validate` is used to call custom validation methods defined on a model

If we use `validate` with a pre-defined helper, it doesn't raise an
error but doesn't do the validation; we had this problem for all our
validations on the Host model.

This also adds a :with_its_aka_host trait to the host factory to
make it easier to create a host and the corresponding aka host together.
Validate that a non-aka host has no canonical_host_id
Merge pull request #265 from alphagov/validate_real_host_not_aka_of_another

Fix Host validations