Add support for value replacements

@Raynos @collenjones 

This adds the ability to add a list of replacements to the options. If replacements are defined, we'll load the JSON and potentially do some string replacements on each key before adding it to the config tree. This could be useful for many scenarios, but the impetus behind this was to support the use case of changing URLs on development boxes. For example, we might want to rewrite:

"https://$username.internal.service.com" to "https://willyham.internal.service.com"

In which case, we would pass this with our config options:

```
replacements: [{
  from: "$username",
  to: "willyham"
]]
```

It also supports regex for more complex replacements.

I still need to add readme info and update versions, but I'd like your feedback first.