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
```
The `job_instance_api_model.rb` is the same model for pipeline history, stage history, job history & agent-job-run history. Now pipeline history java model uses `common/src/com/thoughtworks/go/presentation/pipelinehistory/JobHistory.java ` while others use `common/src/com/thoughtworks/go/domain/JobInstance.java `. `JobHistory.java` has lesser data as compared to `JobInstance.java`. `respond_to?` lets use "re-use" ruby model across apis thus ensuring api response data similarity.