Update push and pull to registry 2.1 specification

Minimal implementation for 2.1 specification.  Does not include fallback, using the v2 route package, or any sort of refactoring.

ping @stevvooe @jlhawn 
You don't need to re-parse the url. Just pass the location header directly into the next request:

```
req, err = r.reqFactory.NewRequest(method, res.Header.Get("Location", rc)
if err != nil { ... }
```

Then, add the url parameters on the resulting request:

```
req.URL.RawQuery = url.Values{"digest": sumType+":"+sumStr}.Encode()
```