Refactor Manifest#remove_annotation.

Factored out the removal of annotations by uri or target for clarity.
Allow annotations to be removed by their content field.

This is so that we can get rid of annotations when we remove what their content
field points to.
Override File#remove to ensure manifest is kept up to date.

Removes associated aggregate and annotations.
Cleanup annotation content stored in .ro/annotations.

This is done on commit for any removed annotations.
Add Util.strip_leading_slash.

Useful for conversion between RO-style and rubyzip-style paths.
Add Aggregate#file_entry for convenience.
Add File#remove_aggregate.

This explicitly removes the associated file as well if required.