Introduce some scaffolding for an attrs-based BaseSchedulerModel
Alongside swh.model.model, this allows us to define data models for the objects
the scheduler is working with, and to serialize/deserialize these objects
transparently at the RPC layer.
This also introduces some mild ORM-like logic so we can keep the actual SQL a
little DRYer.