Silently ignore < and > characters

- Add a test for this new behaviour.
- Change a site_has_hosts? test to make it test what it should test -
  leaving the angle bracket in the test data would have caused it to
  fail because it wasn't hitting site_has_hosts? because it was
  stripped out before and hosts.empty? would have returned true, when
  in fact we want it to return false as the default behaviour.
- This branch is a rework to fix this simple bug raised in pull request
  180 and not worry yet about the other issues raised in the PR's comments.