Implement the ingestion log endpoints.

This will allow storing/retrieving ingestion logs.
To activate the functionality, a client branch is also
required.
Use the given URLs parameter in ingestion tests.
Fix ingestion test errors when using Go 1.2.
Replace ingestion logs with a more generic logging system.
Fix typos and remove redundant test.
Add ability to post multiple logs. Make GET log return a valid JSON list, even if it is streamed.
Add a TODO to use slices in place of maps.
Fix typo.
Add the omit empty annotation to log params.
Automatically store in the logs the base version of the associated URLs.
internal/v4: add meta/id endpoint
Merge pull request #234 from rogpeppe/097-meta-id

internal/v4: add meta/id endpoint

As discussed. The specification has been updated appropriately.
Merge pull request #228 from frankban/ingestion-errors

Implement the charm store logging API.

This will allow storing/retrieving ingestion logs.
To activate the functionality, a client branch is also
required.
Denormalize entity ids on Mongo.

When adding charms or bundles, store their URL parts
in separate fields.
Also implement a simple migration strategy.