When resolving domain, currently we take one of the DNS record randomly.
When we want to do service discovery via DNS, sometimes we hope the domain
resolving will return all the records. For example, with:
```
"nodes": {
"test.consul.service": 1
}
```
We may want to get all IPs instead of a random one.
So my purpose is to provide a per-node dns selector to control the behavior.
For example,
```
"nodes": {
{"host": "test.consul.service", "weight": 1, "selector": "random"}
}
```
is equal to previous configuration.
While
```
"nodes": {
{"host": "test.consul.service", "weight": 1, "selector": "all"},
{"host": "1.1.1.1", "weight": 1}
}
```
with `test.consul.service` be resolved as `1.1.1.2` and `1.1.1.3` will get
this result:
```
"nodes": {
{"host": "1.1.1.1", "weight": 2},
{"host": "1.1.1.2", "weight": 1},
{"host": "1.1.1.3", "weight": 1},
}
```
Note that all the IPs from `test.consul.service` share the same weight.
And the selector doesn't affect SRV record, which is a difference story.