Support wider range of service group string parsing.
Support wider range of service group string parsing.

This change fixes the service group string parsing logic to accept more
values that are legal and useful.

In working on a new feature, I spun up a Depot/Redis combination in
Docker containers which gave me the following service groups in my ring:

* `redis.default`
* `hab-depot.default`

When attempting to apply config for the Depot service I was surprised to
get the following failure:

```
echo 'datastore_addr = “172.17.0.2”’ | hab apply --peers 172.17.0.2 hab-depot.default 1
Invalid service group: "hab-depot.default". A valid service group string is in the form service.group (example: redis.production)
```

After reworking the code that parses these service group strings, we see
the following glory:

```
echo 'datastore_addr = "172.17.0.2"' | hab apply --peers 172.17.0.2 hab-depot.default 1
» Applying configuration
↑ Applying configuration for hab-depot.default into ring via ["172.17.0.2:9634"]
Joining peer: 172.17.0.2:9634
Configuration applied to: 172.17.0.2:9634
★ Applied configuration.
```

Yes!

Signed-off-by: Fletcher Nichol <fnichol@nichol.ca>

Pull request: #533
Approved by: metadave

habitat-sh/habitat,rsertelon/habitat,rsertelon/habitat,habitat-sh/habitat,rsertelon/habitat,habitat-sh/habitat,habitat-sh/habitat,habitat-sh/habitat,rsertelon/habitat,rsertelon/habitat,rsertelon/habitat,habitat-sh/habitat,habitat-sh/habitat,habitat-sh/habitat,rsertelon/habitat