Change super private registry attributes to just private

E.g., change __registry to _registry. Makes it easier to override
things.

It's now possible, however unlikely, that this could cause a problem if
someone decides to use one of the private names as a permission name.
Add registry method for fetching model instances

This allows the logic of fetching instances to be overridable. E.g., in
tests, we may want to use a dummy model class that isn't connected any
type of back end.
Import login_required in method to avoid import-time side effects
Raise NoSuchPermissionError for unknown perms in DecoratorContainer

This is slightly more useful than the AttributeError that gets raised
by default and also makes it consistent with how PermissionsRegistry
handles unknown permissions.
Add tests

Tests are run using nosetests (with coverage enabled by default). Do
`pip install -e .[dev]` to get the required test dependencies.

Currently, the tests are only runnable under Django >= 1.7. They run
under Python 2.7 but not 2.6. This has to do with a few issues relating
to test setup and should be pretty easy to fix.