migration: Add definitions package
Created by: efritz
This PR adds a internal/database/migration/definition
package that contains Definition
struct and a method to create a set of definitions from the filesystem.
A definition is an object representation of an upgrade/downgrade migration query pair, identified by some unique identifier and path. A set of definitions are read from disk and validated (according to the same rules as our current tests enforce).