Adding basic VIP options sync client.

The client takes a .tar.gz filed downloaded from GT and imports it.
Currently the `merge-import` strategy is under development. It is able to
import the content from the GT dump, but is not yet capable of merging
that content into the existing WP install.
Adding options sync merging logic.

Added the base importer logic inside `import_bundle()` which decides which importer to run and tracks which imports have passed/failed. This class is also responsible for ensuring that database tables are imported in the correct order so that there are no dependency conflicts between them. (Ie importing postmeta only after posts have been imported)

Moved the SQL file import logic to a new `import_sql_file()` function as this will be common to all import types.

Wrote the merge-import logic inside `do_merge_import()`. This import strategy tries to take the rows from the new data and add them to the current DB. It has a setting for whether or not rows with conflicting keys should be overwritten. The idea is that for the most part existing data in the database is preserved.
Adding the logic for destructive imports for options sync.

Destructive import completely replaces the destination table with the source table. The logic lives within `do_destructive_import()`.

Adding helper function `get_importable_ids()` to remove some repeated code from the import logic. This function fetches the IDs that can safely be imported, taking into considering key constraints.
Updating merge-import user description.

The description has been updated to reflect the fact that existing content is not overwritten when using merge-import.
Adding choice of import type to the options sync preview.

This takes the form of a select element for each import file. It allows the user to choose the type of import they would like performed on the file. The file can be merged, destructively imported, or skipped.
Removing leftover debugging statement.
Adding more explanatory text when an import is skipped.

Previously if an import was skipped either because that was its action or because it was dependent on a file that was skipped no special status was shown. Now, if a file is skipped it shows it was skipped. If a file gets skipped because of a skipped dependency it says why it got skipped.
Adding client side dependency validation and notices to options sync preview.

The options sync preview now gives immediate feedback to the user based on their selection of merge strategies. It checks dependencies and informs the user if a table is dependent on another which has a more restrictive merge strategy applied to it. It also automatically marks the tables that will be skipped as a result of the users' selection.
Correcting typo in `dustructive-import` description.

Should read "changes lost" not "changes list".
Changing default merge strategies for options sync.

Anything related to posts now uses `destructive-import`. This is because we could otherwise end up with a ton of orphaned rows in the database related to posts. This is also because it is not typically the speicifc posts that are important in a quickstart install, so we just import the new ones.

Everything else uses `merge-import`. This is so that existing options and users remain in place, and only get updated by the new values. By default keys that exist in both databases are left untouched which is important because otherwise some options can get royally destroyed renderring quickstart inoperable. Unless we eventually build a blacklist of options to never update this should remain as is.
Modifying css for better styling of dashboard data tables.
Updating Options Sync to use the WordPress.com export API.

Options sync can now request and download a package from WordPress.com using the /vip-sites/$site/clone endpoint.

Closes #139
Merge remote-tracking branch 'origin/dashboard_optionssync' into qs_dashboard
Adding RepoMonitor preservation on Options Sync.

Hooking the RepoMonitor into `qs_options_sync_pre_import` and
`qs_options_sync_post_import` so that the list of repos we are monitoring
aren't lost when the user performs and options sync import.