We want to separate out the agent functionality from our sources, so that agents can be part of the Lagotto software, or run somewhere else and deposit their data via the new push API.
Sources should become generic enough that we hopefully don't need to subclass the
Source class anymore, but move all that functionality into a new
Agent model. In the beginning all sources will have a corresponding agent, but that will change over time.