Extract SchemaRule logic from SchemaStore.

Since the record type of SchemaStore isn't SchemaRule, but rather
DynamicRecord that then encode the SchemaRule, it becomes tedious and
leads to broken abstractions to have the logic for converting these
DynamicRecords to SchemaRule objects in the SchemaStore. It is instead
moved to the SchemaStorage class that encapsulates a SchemaStore and
handles the conversion to SchemaRule objects.