Remove object-specific builders for parameter-specific builders

**Note:** This is a speculative PR and I'd like your opinions.

Many of the builders that inherit from `SpecialistDocumentBuilder`
tend to do the same thing which can be summarised as the following bit
of code:

```
def call(attrs)
  super(attrs.merge(document_type: "some_document_type_label"))
end
```

They're adding a `document_type` key to the `attrs` hash we pass in.

Rather than create a number of objects for the same task, instead
provide the difference as a parameter so that we can better understand
not only what's different about our builders, but also what's the
same.