Add method stubs to base ApelDb class

These changes are mainly tidy-up as all that's being changed is that the class that invokes the actual database backend classes is being given method stubs that have the right signature (arguments). They all now raise `NotImplementedError` if they're called directly as the backend classes should override these.

(Also improves code health.)

It's not strictly an "abstract base class", though it's kind of acting like one.