Set up the Container superclass.

File now inherits.
Open the container from the superclass.

This means that the local class variable needs to be renamed (from @zipfile to
@container) so it is more generic.
Check and read the mimetype file in the superclass.
Initialize reserved names and managed entries in the superclass.
Refactor mimetype verification.

Now just raises an exception in one place.
Move container verification into the superclass.
Merge branch 'next' into rh/dir

* next:
  Update the example scripts to the new API.
Move ::open to the Container superclass.

Generic enough to be used in different subclasses unchanged so it moves.
Move ::verify and ::verify! to the superclass.

Both suitably generic to move.
Add the ZipContainer::Dir class.

This represents containers as plain directories.
Rename the tests for files.

Ready for the dir tests.
Tests for the ZipContainer::Dir class.
Factor out joining the container path to names.
Add docs for the forwarded Dir methods.
Add a test for a mimetype entry that is a directory.

Should not verify.
Add a test for an unreadable mimetype file.
Merge branch 'rh/dir' into next

* rh/dir:
  Add a test for an unreadable mimetype file.
  Add a test for a mimetype entry that is a directory.
  Add docs for the forwarded Dir methods.
  Factor out joining the container path to names.
  Tests for the ZipContainer::Dir class.
  Rename the tests for files.
  Add the ZipContainer::Dir class.
  Move ::verify and ::verify! to the superclass.
  Move ::open to the Container superclass.
  Move container verification into the superclass.
  Refactor mimetype verification.
  Initialize reserved names and managed entries in the superclass.
  Check and read the mimetype file in the superclass.
  Open the container from the superclass.
  Set up the Container superclass.
Update dependencies.

Loosen some of the constraints too.
Add test-unit as a dependency so we can test ruby 2.0.
Use a cache for the gem dependencies in Travis.