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 feel this spec is a little too close to the implementation. So, it'll be a little brittle, or will accommodate too much. I mean, if you make a change to the AgentJobRunHistoryAPIModel, the code will change and the test will automatically pass. Hmm. But, I understand why it is done this way. So that the call to ```@job_instance_service``` is  verified.