refactor(chain)!: move schemas to their own methods
We would like to test backward compatibility of new schemas.
To do so, we should be able to apply schemas independently.
Why to change `rusqlite::execute` by `rusqlite::execute_batch`?
- we are going to need to return the statements of the schemas as
Strings, because we are now returning them from methods, it seemed
redundant to keep getting references to something is already
referencing data, i.e., keep moving around &String instead of String
(consider `rusqlite::execute_batch` takes multiple statements as a
single String)
- we were calling `rusqlite::execute` with empty params, so we weren't
trapped by the method's signature
- `rustqlite::execute_batch` does the same than we were doing applying
statements secuentially in a loop
- the code doesn't lose error expresivity: `rusqlite::execute_batch` is
going to fail with the same errors `rusqlite::execute` does
BREAKING CHANGE: changes public method `migrate_schema` signature.