Added schema error-checking to policy engine

Previously, datasources declared schemas but the policy engine
failed to check if those schemas were being obeyed.  There
were no errors thrown for rules using non-existent modules,
non-existent tables within a module, or tables within a
module that had the wrong number of arguments.

This change introduces schemas to the policy engine, and the
beginnings of a module system.  Each datasource represents its
own module, and its own schema.  The error-checking is
aware of modules and the fact that each has its own schema
and does the appropriate error-checking.  Tables without module
prefixes need not have a schema declared.

Closes-bug: 1356617
Change-Id: I7cfbd82c721509634c0acfd51e66031af2ed7f2d