Some service layer goodness.

Yeah, should use DQL, but that's hard. Maybe @danfinnie can make that
work. Also added the config file and tools that are useful to actually
running this thing.