Cancel pull push

This is WIP, it add the ability to cancel a push or a pull, **please comment and criticise**.

* Each job now as an ID and the engine has a list of all his jobs.
* For pushes and pulls, the ID is sent in the http response, in the `Job-ID` header.
* A new endpoint was created to kill a job using it's id
* When a job is killed, is status is set ti `StatusKilled`
* Within the pull and push code, in some places, a check is done on the status, if it's err, we return an error.

The two last step needs to be improved, because if you are in the middle of a pull, it'll finish the current one before exiting.

I didn't do any doc for now.