Introduced abstractions for manipulating the database of bridge classes.

These abstractions are mainly useful for debugging purposes, so that
we can get proper error messages when there is an attempt to find a
class that does not exist, rather than propagating NIL until something
fails further down the road.
Introduced abstractions for manipulating database of bridge generic functions.

For the same reason as for bridge classes, in order to simplify
debugging, we need proper error messages when there is an attempt to
find a bridge generic function that does not exist.
Use new abstractions for manipulating class database.
Use new abstractions for manipulating generic function database.