Add wildcard support.

Wildcard hostnames are now supported in Keter, with partial RFC2818 support.

Wildcard hostnames can have exceptions, can be specified at arbitrary depths,
and are non-recursive. `*.example.com` will match `foo.example.com` but not
`foo.bar.example.com`. Likewise, `*.*.example.com` will only match the latter,
not the former.

The keter.cabal is modified to build the example app.

Internal string usage is made more homogeneous to use Data.Text. Despite this,
internationalized domain names are not yet supported unless entered in config
files as punycode.