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 know you added the ```unless``` bit in 355d2123e30910be97ecbbe6cd6ba910da604e9c, but I don't understand why it is needed. If ```agent_view_model.getUuid()``` is not nil, then ```@uuid``` will be set. But, if it is nil, then ```@uuid``` will be nil anyway. Why is that unless needed?