Refactor to `configService` to read & write `Config`

`configService` can save and load `Config` using a strategy of `configEncoder`
and `configDecoder`. This pave the path for swapping out `tomlConfigEncoder`
and `tomlConfigDecoder` with `yamlConfigEncoder` and `yamlConfigDecoder`.

`Configs` also has been renamed to `Config`.

/cc @mislav 
> The decoder and encoder components feel too lightweight and don't warrant being extracted to source files of their own.

The encoder and the decoder actually have more stuff. This is [what ends up being](https://github.com/github/hub/blob/gh_yaml_fix/github/config_encoder.go). I did think about putting them into the same file `config_encoder_decoder.go` but figure it's too mouthful and usually it means coupling.

> I would be more in favor of config "reader" and "writer" APIs that would use either TOML/YAML internally but also have more responsibilities such as reading/writing to the config file.

The strategy pattern actually happens on the encoder/decoder part, not the reader/writer part. The logic for reading/writing from/to a file for both format is [the same](https://github.com/github/hub/blob/gh_yaml_fix/github/config_service.go#L20-L43). The [JSON standard lib](http://golang.org/pkg/encoding/json/) is doing something similar.