Allows layers to be partially pulled and resumed

Local-stored layers now keep track of their current size and expected full size, as to allow for a notion of partially-written layers. The Pull workflow recognizes local partial layers that are not currently being written to, and requests only the remaining data from the registry for these layers.

This change also adds a sort of contrived test for resumable pulls.

@dmp42 @stevvooe 
In the registry backend, http api and the client code, we seem to be using `size` to mean, well, "size". In the http api, we end an upload with the `length` parameter.

Do you see an issue updating the specification to take the "size" parameter, instead of the "length" parameter?