Add a migration for historical fact storage

These tables will now house the fact values. This particular migration
is taking place to enable deduplication of fact storage when temporal
configuration is activated and users want to historically store all
fact values.
Make facts, facts_metadata migration portable with HSQLDB
Look at abstracting 'facts' at the record layer

This way all of the respective logic for other records can be hidden
away as common sets of functions such as save, update and delete.