Adding mock backend and tests

Goal of the PR: add config manager tests
This PR has the following changes:
- new backend `mock` that's used in unit tests
- new `config/config_test.go` file to test get / set / watch of config manager
- adds a generic `NewConfigManager` and `NewStandardConfigManager`. I think ideally people would use this instead and give it a store backend on creation, as the unit tests do. However, I kept the `NewEtcd...` and `NewConsul...` methods to not break backwards compatibility.

Let me know if there are any questions, thanks.