Partial rework to make config self-contained.

That's to say that no config instance's pointer will ever have to be
replaced because it can now do in-place replaces and is completely
thread safe.

- Rename all GetX to X.
- Rename configfile_test to the more appropriate config_file_test.
All tests working currently.
Add extensions to the config structure.

- Add simple Get() tests with no errors.
Change yaml out for toml.
Add test coverage.
Major breakages.
Continue butchering my way through config.
Add extension structs.

- Move validation out into it's own files.
- Add validation tests.
Finish validation of the config.

- Add back default values where missing.
- Remove unnecessary json/toml struct tags.
Finish required validation tests.

- Dry up the type tests a little.
Validation test coverage.
Create tests for half of the  get/setters.

- Introduce mp abstraction to help clean up the type assertion madness.
- Fix some bugs where set/get didn't work properly because of the
  different types involved.
Add remaining extension tests.

- Rewrote the check() functions to be generic.
- Created additional test files to further break things down.
- Increased test coverage.
Add config getters and setters.
Fix documentation.

- Export types that were required for pretty docs.
Bring back fluent. Not sure why.
Finish Clone() for Config.
Add ConfigVal to the ExtGlobalCTX.
Add methods to get lists of configured objects.
Add a Replace feature to config.