Parse settings client-side (addresses #67)

*tests DO NOT PASS, don't merge this*

If you grab this change and run the test, you'll see it fails due to our types not marshaling/unmarshaling correctly. json & yaml both fail to handle the anonymous JSONBase correctly, and yaml doesn't seem to parse "replicas: 9000". Not sure what other landmines there are waiting for us here.
Is YAML still broken?

Technically, JSON is a subset of YAML.  We should be able to get away with just the YAML parser.  This'll work for now though.