Changes for supporting bi-temporal records - i.e. we now have the
rows include a "valid_from" and "valid_to" columns; so we can
track the history of given policy statements.

This also included some refactoring -- in some locations the table
name was hard-coded into strings; since objects have the "table_name"
passed in as a variable (used in the sqlalchemy open URI), it's stored
in an object variable (self.table_name) and used instead of the literals
in the strings.  The inclusion of the table name (as a literal) would
have caused syntax errors if other table names were used.