Added support for mysql / mariadb

This pull request adds support for mysql / mariadb.

Functionalities for MySQL:
- Single-thread loading / unloading for now
- Can run on a single-node mariadb, or a mysql cluster
- Only support tsv_extractor
- Support all current factors

Code structure
- For inference part, Move current datastore-dependent code outside SQLInferenceDatastore, to PostgresInferenceDatastore. Added MysqlInferenceDatastore to support mysql syntax by implementing unimplemented methods and overriding implemented methods in SQLInferenceDatastore.
- Do not have very good code organization for extractor part.

Examples
- Ported an example in spouse_example/tsv_extractor to mysql, in the same directory.

Tests
- Passed all existing tests (against psql), so that it should not break the psql code path.
- **Have NOT** added test to mysql-specific functionalities.

Code refactor: trait JdbcDatastore now has method `executeSqlQuery`. Not sure if this can be combined with other functions (some of them only allows update).