Added abstract base classes for some modules.

Added a "securable" interface for modules that allows them to accept a
checker.
More code restructuring. All night, every night.