ruby: define 'DBMS::Base#_history_table_statement' and change '#create_history_table()' to call it
ruby: change 'DBMS::Base#get_migrations()' to call '#_get_migrations()' with default args
ruby: refactor to define 'DBMS::PostgreSQL#_history_table_statement()'
ruby: add default implementation of 'DBMS::Base#applying_sql' and '#unapplying_sql'
ruby: change 'DBMS::PostgreSQL' to remove '#applying_sql' and '#unapplying_sql'
ruby: change 'END;' to 'COMMIT' in temporary sql file
ruby: move default implementation of '#(un)apply_migrations()' from 'PostgreSQL' to 'Base'
ruby: remove 'DBMS::PostgreSQL#q()'
ruby: rename 'DBMS::Base#(un)applying_sql' to '#_(un)applying_sql' name make them protected
ruby: refactor 'DBMS::Base' class to avoid embedding history table name
ruby: change 'DBMS::Base#q()' to be protected method
ruby: refactor to require 'open3' at top of file