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.
All the brokenness my test was exposing was located between my ears, fortunately. :)

And you're right, the yaml parser parses JSON, too. I might as well shorten the code, stand by...