gofmt
Big refactor to put platform implementations into json + templates.

This was partly necessary because Go doesn't support runtime plugin
loading of any kind, nor generics for collections, nor interfaces
with methods (all roads I attempted to travel).

I'm not likely to stay with JSON because it's a tragedy of a config
format, but it's working for now-ish.
Apply templating to file paths, too.