main: add address validation and unix domain socket support

I'm trying to do a sensible amount of validation, not be exhaustive. I think those cases look perfectly fine with the current patch:

```
trevize etcd unix ; bin/etcd  -bind-addr=127.0.0.1:123456
2014/09/18 15:59:35 main: no data-dir is given, using default data-dir ./0x1_etcd_data
2014/09/18 15:59:35 path=0x1_etcd_data/wal wal.load index=0
2014/09/18 15:59:35 Error starting client listener: listen tcp: invalid port 123456
: trevize etcd unix ; bin/etcd  -bind-addr=127.0.0.1:-12345
2014/09/18 15:59:37 main: no data-dir is given, using default data-dir ./0x1_etcd_data
2014/09/18 15:59:37 path=0x1_etcd_data/wal wal.load index=0
2014/09/18 15:59:37 Listening for peers on :7001
2014/09/18 15:59:37 Error starting client listener: listen tcp: unknown port tcp/-12345
```