Config

Got a few queries and thoughts on this that I'll list here:

Why do we list values in both <module>/config.go and config.gcfg?  We should try to commonise to a single place for simplicity.

I think each module should assert (log.Fatal?) that it has loaded config at start of day to protect against incorrect starting up of the modules.  The log should obviously state that the user has started the module without injecting the appropriate config, maybe (if cheap) listing the values that are required.

I'm wondering if maybe the config object should own getting values into the right form (ie. converting to unit8, etc.) before injecting into the other modules.  This means that we should only convert the type once before we inject and not multiple times after.

On the whole though looks good.  I'm keen to get all these values in one place. =)  I remember you mentioning you were concerned about something, but I can't remember what that off the top of my head.  Anything else you had on your mind apart from the above?