First part of parsing settings client-side (addressing #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. I want to write the rest of this feature before figuring out a fix for this marshaling stuff, though, so putting this out there in case someone else feels like figuring that out.