hostname and fqdn validations

This line should probably be:
`rule(:dns_label) { letter >> (str('-').repeat >> letter_digit.repeat(1)).repeat }`

Here are some tests that fail with the current implementation:
```
    it_behaves_like 'a valid value', 'a.org'
    it_behaves_like 'a valid value', 'a-a-a-a.org'
```