WIP: DNS case-insensitivity

As defined by [RFC1035](http://www.ietf.org/rfc/rfc1035.txt) 2.3.3, DNS should done in a case-insensitive manner. This pull will lowercase node data in the state store and always compare incoming DNS queries in lowercase.

Resolves #189.
Removing `strings.ToLower` here will make `foo.nOde.consul` fail, so we're not truly case-insensitve. We could although lowercase `labels` to avoid losing data in logs.