id, source_id -> provider_id

The main reason is that many objects that we would like to make
seleciton providers already have a traits `id` (e.g., anything
tasks-related). It also make the variable names more homogeneous.