Only digest entities if not present in the charm store.

Store the bzr-digest extra-info for all the ingested entities, and compare the value in subsequent charmload calls.
Perhaps it might be worth factoring this into a more general function,
say:

  // putCharmStore makes a PUT request to the given URL path in
  // the charm store with the given body.
  func (cl *charmLoader) putCharmStore(path string, body interface{}) error

rather than having all this logic specifically for one path. It can eventually
end up as part of a more general client library.