Add support for redshift.

Create a common class for redshift and postgres (since they are similar).
In the future postres should more to contrib as well.
Create both a Redshift target and an S3CopyTask
Support for AutoConfigClient from snakebite.client
Use postgres as the Target for both Redshift and Postgres (only add an attribute use_db_timestamps). And rename postgreslike to rdbms
Adds upstream dependencies option to visualizer

Uses new api call /api/inverse_dep_graph/<task_id>, which returns
the same data types as  /api/dep_graph, except the "deps" field
is inverted.

E.g. If A requires B, the data returned is
{
  "B()": {
     deps: ["A()"]
  }
}
Add test, fixes from test

Inverse dependency wasn't being added if we'd already seen it
Merge pull request #276 from rantav/redshift

Add support for redshift.
Merge pull request #288 from JoeEnnever/upstream

Adds upstream dependencies option to visualizer
Merge pull request #284 from kawaa/autoconfig-snakebite

Support for AutoConfigClient from snakebite.client
have the track process return (stdout, stderr), bubble this up to the
hive module as well