Implement the store.AddBundle method

Also implement a cstomized CharmURL type so that we can easily deal with partial URLS.

Updated dependencies so that we are now using the updated names/charm.v2 packages.

This feels a little odd, as it's just a part of the raw BSON. We should be able
to avoid dependency on the raw BSON encoding completely, I think.

    data: map[string]interface{} {"URL": "cs:trusty/wordpress-42"},

then check with

    var gotData map[string]interface{]
    err := test.unmarshal(serialized, &gotData)
    c.Assert(err, gc.IsNil)
    c.Assert(gotData, jc.DeepEquals, test.data)