apis - pipeline status, history: pipeline, stage, job, agent job run, material commits, config: pipelines, materials, config repo commits list & diff

#394 

pipeline history api (this gives minimal data thats required)
```
<server>/go/api/pipelines/<pipeline-name>/history/[offset] - optional offset
```
stage history api
```
<server>/go/api/stages/<pipeline-name>/<stage-name>/history/[offset] - optional offset
```
job history api
```
<server>/go/api/jobs/<pipeline-name>/<stage-name>/<job-name>/history/[offset] - optional offset
```
agent job run history api
```
<server>/go/api/agents/<agent-uuid>/job_run_history/[offset] - optional offset
```
list material commits
```
<server>/go/api/materials/<fingerprint>/modifications/[offset] - optional offset
```

#395

pipeline config list api - lists material configs + stage configs
```
<server>/go/api/config/pipelines
```
material config list api
```
<server>/go/api/config/materials
```
config repo commit list api
```
<server>/go/api/config/revisions/[offset] - optional offset
```
config repo diff
```
<server>/go/api/config/diff/<from-commit-SHA>/<to-commit-SHA>
```

#225 
pipeline status api
```
<server>/go/api/pipelines/<pipeline-name>/status
```
I understand why the total count is needed. But, if you look at the services that this object is passed to (in this case, pipeline_history_service.loadMinimalData), you'll see that they use pagination.getPageSize() and pagination.getOffset(), but not pagination.getTotal(). So, we are wasting a call to the DB just to get that, unused, piece of data.

It is definitely used in the UI, in other parts, as you showed. But, not much in the API and DAO layers, where this piece of code is.

We could, for instance, have a smaller interface, which has just those two methods, and use that instead. Think of it as:

```
interface PageSizeAndOffset { getPageSize(); getOffset(); ... }
class Pagination implements PageSizeAndOffset { getPageSize() {};  getOffset() {};  getTotal(); ... }
class PageSizeAndOffsetImpl implements PageSizeAndOffset { getPageSize() {};  getOffset() {};  NO getTotal(); ... }
```

Of course, those names are all made up and bad. The idea might be relevant, though.

In the call to pipeline_history_service.loadMinimalData(), we could use ```PageSizeAndOffset``` through ```PageSizeAndOffsetImpl```.